C# 如何关闭web服务调用的持久连接

C# 如何关闭web服务调用的持久连接,c#,web-services,session,proxy,asmx,C#,Web Services,Session,Proxy,Asmx,从我的WinForms应用程序中,我必须调用一个web服务,并且我正在为此使用一个web引用。到目前为止没有问题,但现在我有一个客户端,它在负载平衡器后面的代理后面使用该软件 Web服务调用进行得很顺利,但两分钟后就失败了。我们可以通过重复调用间隔不到两分钟的Web服务来解决这个问题 我发现负载平衡器在两分钟内不使用tcp会话时会断开它们的连接,很明显这就是我们的情况,而软件无法恢复 我如何告诉gerenated web引用为每个web服务调用使用新的tcp连接?如果覆盖代理的GetWebReq

从我的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;
}

您正在处理调用之间的代理对象吗?我可以关闭webrequest上的KeepAlive,但我一直在标题中看到代理连接:keep Alive。@fordan:这将用于web代理,而不是主连接。我不知道如何改变,也不知道是什么让它打开。