2016-07-22 2 views
1

Je me bats pour parvenir à une exigence du client. J'ai un service Web qui appelle à son tour le webservice du client. Notre service après une demande au service client à l'aide des biens UploadString() de webclient.Here je demande fréquemment au service client, donc je voudrais garder la connexion alive.I est venu de savoir que dans HTTP 1.1 il y a une fonctionnalité appelée "KeepAlive" qui permet une connexion persistante. Ma question est, est-il possible de configurer la propriété timeout de ce keepalive via le code C#?Changement de garder la propriété en vie en C# .net

votre aide :) Appréciez

+0

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

+0

@x ... Merci pour votre réponse.Mais pouvez-vous s'il vous plaît laissez-moi savoir comment je peux y parvenir en utilisant le client Web? Désolé, je ne suis pas un expert dans ce domaine. – Sudheesh

Répondre

0

Pour utiliser cette méthode, vous devez créer une classe dérivée de WebClient, voir cet exemple. Vous pouvez définir le délai, keepalive, tcpkeepalive également là. Et utiliser cette classe, au lieu de 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

Merci @x ... On peut dire qu'elle vous worked.Can s'il vous plaît laissez-moi savoir aussi quel est le délai d'attente par défaut pour rester en vie? De plus s'il est possible de diminuer encore à cette valeur par défaut en utilisant le code ci-dessus? – Sudheesh

+0

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

+0

@X ... Y at-il façon de tester le keepalive fonctionne comme prévu? – Sudheesh