2016-07-22 20 views
1

Ich habe Schwierigkeiten, eine Anforderung vom Client zu erreichen. Ich habe einen Webservice, der wiederum den Webservice des Kunden aufruft. Unser Dienst POST eine Anfrage an den Client-Service mit UploadString() -Eigenschaft von Webclient.Hier habe ich häufige Anfragen an den Client-Service, so möchte ich die Verbindung am Leben erhalten.Ich kam zu wissen, dass in HTTP 1.1 ist ein Feature genannt "KeepAlive", die dauerhafte Verbindung erlaubt. Meine Frage ist, ist es möglich, die Timeout-Eigenschaft dieses Keepalive über C# -Code zu konfigurieren?Ändern der Keep Alive-Eigenschaft in C# .net

Schätzen Sie Ihre Hilfe :)

+0

Verwandte: https://msdn.microsoft.com/en-us/library/system.net.servicepoint.settcpkeepalive(v=vs.110).aspx –

+0

@x ... Danke für deine Antwort.Aber kannst du mir bitte mitteilen, wie ich es mit dem Web Client erreichen kann? Tut mir leid, ich bin kein Experte auf diesem Gebiet. – Sudheesh

Antwort

0

diese Methode verwenden zu können, müssen Sie eine Klasse erstellen, die von WebClient abgeleitet, um dieses Beispiel sehen. Sie können Timeout, Keepalive, Tcpkeepalive auch dort einstellen. Und diese Klasse verwenden, statt 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; 
    } 
    } 
+0

Danke @x ... Scheint, es hat geklappt.Kannst du mir bitte auch sagen, was ist das Standard-Timeout für am Leben zu halten? Auch, ob es möglich ist, weiter auf diesen Standardwert mit dem obigen Code zu verringern? – Sudheesh

+0

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

+0

@X ... Gibt es irgendwelche Wie funktioniert das Testen des Keepalive? – Sudheesh