【发布时间】:2012-12-17 23:20:44
【问题描述】:
我有一个 WCF 服务,它以 HTML 表单的形式接受来自 jqGrid 的 POST 请求并返回 JSON。
虽然一切都在 .NET 4.0 上,但一切正常。我可以通过request["fieldName"] 访问服务内的表单字段。一旦我升级到 .NET 4.5,我所有的 request["fieldName"] 现在都是空白的。 .NET 4.5、WCF 和 HttpContext.Current.Request 是否存在某种已知问题?
这是一个例子:
POST http://{REMOVED}/Grid.svc/Execute HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
_search=false&nd=1355782305975&rows=15&page=1&sidx=modified&sord=desc&search=&category=all
还有,这里是服务:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class GridAccess
{
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json
)]
public GridResponse Execute()
{
var request = System.Web.HttpContext.Current.Request;
所有对 request["fieldName"] 的引用以前在 .NET 4.0 下都可以使用,而现在,在升级到 .NET 4.5 后,它们都返回 NULL。
【问题讨论】:
标签: asp.net wcf .net-4.5 asp.net-4.5