请求参数不会在POST请求中传输

时间:2014-01-08 14:46:46

标签: c# .net wcf post webmethod

我通过Fiddler调用WebMethod,我在“请求体”中提供了2个必需参数,我得到了一个奇怪的行为:

  • 前10个请求,按预期工作=>我可以在HttpContext.Current.Request.Form
  • 中找到参数值
  • 从第11个POST请求开始,POST参数不会传输到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.
    ...
}

2 个答案:

答案 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一起使用的真正原因。