部署到AppHarbor后,WebInvoke表单元素为空

时间:2013-04-28 11:41:22

标签: jquery wcf appharbor

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

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

服务的定义如下:

[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)]

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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?