在 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;
}
}
我正在努力实现客户的要求。 我有一个 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;
}
}