2012-11-24 48 views
0

我下面OperationContract我的WCF服務;我用HttpContext.Current.Request.Form["param"]來檢索提交的數據。WCF OperationContract的WebInvoke POST數據是空

[OperationContract] 
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)] 
public string authenticateUser() 

我service.svc文件包含<%@ ServiceHost Language="C#" Debug="true" Service="service.login" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>

現在POST參數顯示爲空。我使用fidler檢查了這些請求。

這個方法在我工作了幾個星期,直到我遷移到VS 2012(這是我做出的唯一更改),並且我託管的Azure應用程序也可以正常工作。

是有,我可以得到POST數據的任何其他方式? 在此先感謝。在

+0

你爲什麼不把發佈的數據作爲方法參數發送? – Trent

+0

@Trent,因爲我用我不能使用UriTemplate'WebScriptServiceHostFactory' –

+0

我用WebServiceHostFactory並沒有這樣的限制 – Trent

回答

0

2想法這一個

1)你爲什麼不以參數傳遞你的方法也是這樣嗎?

[OperationContract] 
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)] 
public string authenticateUser(string param) 

或者

2)如果這不是一個選擇,我不知道如果把這個屬性可能使正常的ASP.NET管道,使得表單變量可用

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
+0

我已經[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required )]'啓用ASP.NET會話狀態 –