2013-04-28 45 views
0

我有用Jquery发布的WCF服务。部署到AppHarbor后,WebInvoke表单元素为空

它可以在我的开发环境中正常工作,但是现在将它部署到AppHarbor时,不会在服务器上检索POST的值。

服务的定义是这样的:

[OperationContract] 
[WebInvoke(Method="POST", UriTemplate="/RunReport/MyReport", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
WebResults MyReport(); 

在实现我得到这样的价值观:

public WebResults MyReport() 
{ 
var value = HttpContext.Current.Request.Form["formName"]; 
... 
} 

实现类也有这样的属性:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 

正如我所说,这在当地工作正常,我可以看到正确的数据由jquery在Fi中发布rebug,但由于某种原因,AppHarbor HttpContext.Current.Request.Form [“formName”]总是返回NULL。

任何想法?

回答

0

嗯,我不知道是什么问题,但我发现了一个变通......

我现在用下面的代码,它似乎工作:

StreamReader reader = new StreamReader(stream); 
String res = reader.ReadToEnd(); 
NameValueCollection coll = HttpUtility.ParseQueryString(res); 
criteria.Retailers= coll["Retailers"].Split('|'); 

我发现对此帖的回复:WCF + REST: Where is the request data?