如何关闭Web服务调用的持久连接

从我的WinForms应用程序,我必须调用Web服务,我正在使用Web引用。 到目前为止没有问题,但现在我有一个客户端使用负载平衡器后面的代理背后的软件。

Web服务调用很顺利,但两分钟后它们就失败了。 我们可以通过反复调用间隔小于两分钟的Web服务来解决这个问题。

我发现负载均衡器在没有使用两分钟时会断开tcp会话,看起来这就是我们的情况,软件无法恢复。

如何告知gerenated Web引用为每个Web服务调用使用新的tcp连接?

如果重写代理的GetWebRequest方法,则可以设置KeepAlive属性:

 public override WebRequest GetWebRequest(Uri uri) { HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); request.KeepAlive = false; return request; }