我通过Fiddler调用WebMethod
,我在“请求体”中提供了2个必需参数,我得到了一个奇怪的行为:
HttpContext.Current.Request.Form
WCF
service =>在调试WebMethod
时,HttpContext.Current.Request.Form
为空。任何线索为何会发生这种情况?
这是我的代码:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/getsomething")]
[FaultContract(typeof(ResponseMessageStatus))]
[DynamicResponseType]
public Stream GetSomething()
{
var par1 = HttpContext.Current.Request.Form["myparameter"] ;
//after 10 requests, HttpContext.Current.Request.Form is empty.
...
}
答案 0 :(得分:0)
可能你在这里有典型的IIS默认10个并发连接。 从fiddler调用WCF方法后,您是否能够验证连接是否已关闭?可能它没有关闭,当你点击第11个请求时它会挂起(直到池中的任何连接关闭),所以你看不到你的数据......
解决方案: 1.close connection(在调用后创建自己的代理测试客户端并在代理上关闭连接)
var apiClient = CreateApiClient();
try
{
apiClient.GetSomething();
apiClient.Close();
}
catch (Exception ex)
{
LogHelper.Current.WriteToLog(LogHelper.LogFiles.MessageLog, ex);
apiClient.Abort();
}
2.更改配置设置:
serviceThrottling maxConcurrentCalls="10000" maxConcurrentSessions="10000" maxConcurrentInstances="10000"
答案 1 :(得分:0)
在我将参数作为JSON发送后修复。仍然没有得到它与POST / JSON一起使用的真正原因。