我创建了一个代理服务来调用第 3 方网络服务。我在我的代理服务中循环调用该方法 5000 次。我在循环中间的大约 100 个调用中收到此错误(大约 4000 个成功工作,然后大约 100 个错误,然后它成功完成剩余的 900 个)。
这是在服务器端抛出的错误:
System.InvalidOperationException 消息无法处理请求。方法
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler
在 System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(类型
类型、HttpContext 上下文、HttpRequest 请求、HttpResponse 响应)
在 System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext
上下文、字符串动词、字符串 url、字符串文件路径)
在 System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext
上下文,字符串 requestType,字符串 url,字符串路径翻译)
在 System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,
Boolean & completedSynchronously)
附加信息
+System.InvalidOperationException:+System.Web.HttpException:
Message: Server cannot clear headers after HTTP headers have been sent. Source: System.Web Method: System.Web.HttpResponse.ClearHeaders
我看到客户端的错误是:
System.Net.WebException:请求失败,HTTP 状态为 400:错误请求。在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 消息,WebResponse 响应,流 responseStream,布尔 asyncCall)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串方法名,对象 [] 参数)
到目前为止,我发现的谷歌搜索只与服务器上的文件传输有关。谁能指出我不同的方向?
编辑:我刚刚检查了托管代理服务的服务器,并在 EventViewer/EventLog 中注意到了这个错误:
- 0 2 0
0x80000000000000
569114
应用程序
labdevapp21.dot.labidot.lan
- HTTP/ASMX 消息接收失败:System.InvalidOperationException:在 System.Web.Services.Protocols.SoapMessage.get_ContentType 的 System.Web.Services.Protocols.SoapMessage.EnsureStage(SoapMessageStage 阶段)的消息阶段 0 中可能无法访问该值() 在 Microsoft.Web.Services3.WseProtocol.CheckMtomContentType(SoapServerMessage 消息) 在 Microsoft.Web.Services3.WseProtocol.CreateRequestSoapEnvelope(SoapServerMessage 消息) 在 Microsoft.Web.Services3.WseProtocol.GetRequestEnvelopeFromMessage(SoapServerMessage 消息)