【问题标题】:Changing the keep alive property in c#.net在 c#.net 中更改保持活动属性
【发布时间】:2016-11-26 09:49:36
【问题描述】:

我正在努力满足客户的要求。 我有一个 Web 服务,它反过来调用客户端的 Web 服务。我们的服务使用 webclient 的 UploadString() 属性向客户端服务发布请求。这里我经常向客户端服务请求,所以我想保持连接活跃。我知道在 HTTP 1.1 中有一个名为允许持久连接的“KeepAlive”。我的问题是,是否可以通过 c# 代码配置此 keepalive 的超时属性?

感谢您的帮助:)

【问题讨论】:

标签: c# timeout webclient keep-alive http-1.1


【解决方案1】:

要使用该方法,您必须创建一个从 WebClient 派生的类,请参阅此示例。你也可以在那里设置 timeout、keepalive、tcpkeepalive。并使用这个类,而不是 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;
    }
  }

【讨论】:

  • 谢谢@x... 看来它工作了。你能告诉我保持活动的默认超时是多少吗?还有是否可以使用上面的代码进一步降低到这个默认值?
  • @X... 有什么方法可以测试 keepalive 是否按预期工作?
猜你喜欢
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
相关资源
最近更新 更多