0

我有使用 Jquery 发布到的 WCF 服务。

它在我的开发环境中运行良好,但是现在它已部署到 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 在 Firebug 中发布了正确的数据,但由于某种原因,AppHarbor HttpContext.Current.Request.Form["formName"] 总是返回 NULL。

有任何想法吗?

4

1 回答 1

0

好吧,我不确定问题是什么,但是我找到了解决方法...

我现在使用以下代码,它似乎工作:

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

我在这篇文章中找到了答案:WCF + REST:请求数据在哪里?

于 2013-04-28T22:45:37.917 回答