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

时间:2011-02-08 13:06:42

标签: c# web-services session proxy asmx

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

Webservice呼叫正常,但两分钟后它们就失败了。我们可以通过反复调用间隔不到两分钟的Web服务来解决这个问题。

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

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

1 个答案:

答案 0 :(得分:1)

如果您覆盖代理的GetWebRequest方法,则可以设置KeepAlive属性:

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