从我的WinForms应用程序中,我必须调用web服务,我正在使用Web引用。到目前为止没有问题,但现在我有一个客户端使用负载平衡器后面的代理背后的软件。
Webservice呼叫正常,但两分钟后它们就失败了。我们可以通过反复调用间隔不到两分钟的Web服务来解决这个问题。
我发现负载均衡器在没有使用两分钟时会断开tcp会话,看起来这就是我们的情况,软件无法恢复。
如何告知gerenated Web引用为每个Web服务调用使用新的tcp连接?
答案 0 :(得分:1)
如果您覆盖代理的GetWebRequest
方法,则可以设置KeepAlive
属性:
public override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri);
request.KeepAlive = false;
return request;
}