ASMX客户端中长时间持有的TCP会话

时间:2010-05-27 22:37:43

标签: web-services tcp asmx

我有一个与第三方SOAP Web服务对话的ASP.NET应用程序。我的应用程序使用ASMX客户端代理(即System.Web.Services.Protocols.SoapHttpClientProtocol)。第三方服务使用WCF,虽然我不认为这会产生很大的不同。

我应该注意到我们使用的是.NET 3.5 SP1。

我们没有自定义代理或做过任何异常 - 我们只是制作标准的Web服务请求并取回结果。我们在使用块中封装了代理引用,因此在收到响应后它将被释放。

我们被告知我们的应用程序在使用TCP会话时表现得很奇怪。而不是为来自新代理实例的每个请求打开一个新的TCP会话(这是我本来期望它做的),它显然保持了几个连接并且重新使用它们。这导致第三方结束时出现一些问题,因为他们期望我们使用多个会话。

这是SoapHttpClientProtocol客户端代理的已知行为吗?如果是这样,我们有什么方法可以覆盖它,以便每个请求都会产生一个新的TCP会话?

谢谢,

约翰

1 个答案:

答案 0 :(得分:0)

请参阅“Ways to Customize your ASMX Client Proxy”。您将看到如何设置用于提出请求的KeepAlive的{​​{1}}属性。