2016-07-22 63 views
1

我正在努力实现客户端的要求。 我有一个Web服务,它反过来调用客户端的Web服务。我们的服务使用webclient的UploadString()属性向客户端服务发送一个请求。在这里我经常请求客户端服务,所以我想保持连接活着。我开始知道在HTTP 1.1中有一个叫做“KeepAlive”允许持久连接。我的问题是,是否有可能通过C#代码配置此Keepalive的超时属性?在c#中更改保持活动状态.net

感谢您的帮助:)

+0

相关:https://msdn.microsoft.com/en-us/library/system.net.servicepoint.settcpkeepalive(v=vs.110).aspx – 2016-07-22 13:12:27

+0

@x ...感谢您的答复。但是,请让我知道如何使用网络客户端实现它?对不起,我不是这方面的专家。 – Sudheesh

回答

0

要使用这个方法,你必须创建的WebClient派生的类,看到这个例子。你可以在那里设置超时,保持活动,tcpkeepalive。而使用这个类,而不是Web客户端:

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; 
    } 
    } 
+0

谢谢@x ...似乎它的工作。你可以让我知道什么是保持活着的默认超时?还有可能使用上面的代码进一步降低到这个默认值? – Sudheesh

+0

https://blogs.technet.microsoft.com/nettracer/2010/06/03/things-that-you-may-want-to-know-about-tcp-keepalives/ – 2016-07-27 08:39:18

+0

@X ...有没有测试Keepalive的方式是否按预期工作? – Sudheesh

相关问题