我有一个与第三方SOAP Web服务对话的ASP.NET应用程序。我的应用程序使用ASMX客户端代理(即System.Web.Services.Protocols.SoapHttpClientProtocol)。第三方服务使用WCF,虽然我不认为这会产生很大的不同。
我应该注意到我们使用的是.NET 3.5 SP1。
我们没有自定义代理或做过任何异常 - 我们只是制作标准的Web服务请求并取回结果。我们在使用块中封装了代理引用,因此在收到响应后它将被释放。
我们被告知我们的应用程序在使用TCP会话时表现得很奇怪。而不是为来自新代理实例的每个请求打开一个新的TCP会话(这是我本来期望它做的),它显然保持了几个连接并且重新使用它们。这导致第三方结束时出现一些问题,因为他们期望我们使用多个会话。
这是SoapHttpClientProtocol客户端代理的已知行为吗?如果是这样,我们有什么方法可以覆盖它,以便每个请求都会产生一个新的TCP会话?
谢谢,
约翰
答案 0 :(得分:0)
请参阅“Ways to Customize your ASMX Client Proxy”。您将看到如何设置用于提出请求的KeepAlive
的{{1}}属性。