在 c#.net 中更改 keep alive 属性

Changing the keep alive property in c#.net

我正在努力实现客户的要求。 我有一个 Web 服务,它又调用客户端的 Web 服务。我们的服务 POST 使用 webclient.Here 的 UploadString() 属性 对客户端服务的请求我经常向客户端服务请求,所以我想保持连接 alive.I开始知道在 HTTP 1.1 中有一个名为 "KeepAlive" 的特性允许持久 connection.My 问题是,是否可以通过 c# 代码配置此 keepalive 的超时 属性?

感谢您的帮助:)

要使用该方法,您必须创建一个从 WebClient 派生的 class,请参阅此示例。您还可以在那里设置超时、keepalive、tcpkeepalive。并使用此 class,而不是 WebClient:

  public class WebClientExtended : WebClient
  {
    protected override WebRequest GetWebRequest(Uri uri)
    {
      var w = (HttpWebRequest) base.GetWebRequest(uri);
      w.Timeout = 5000;      // Set timeout
      w.KeepAlive = true;    // Set keepalive true or false
      w.ServicePoint.SetTcpKeepAlive(true, 1000, 5000);  // Set tcp keepalive
      return w;
    }
  }