Halten Sie eine http-Verbindung am Leben in C#?
Wie kann ich eine Verbindung aufrecht erhalten, das in C#? Ich bin nicht tun es richtig. Ich nehme an, erstellen Sie eine HttpWebRequest-obj und es verwenden, um auf alle URLs, die ich brauche? ich sehe nicht, einen Weg zu einer anderen url dann die HttpWebRequest.Erstellen von statischen Methode.
Wie erstelle ich eine Verbindung, halten Sie es lebendig, surfen Sie auf mehreren Seiten/Medien auf die Seite und unterstützt proxys? (ich höre proxy sind einfach und der support ist schon fast standard?)
-edit - gute Antworten. Wie beantrage ich eine 2. url?
{
HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create("http://google.com");
WebRequestObject.KeepAlive = true;
//do stuff
WebRequestObject.Something("http://www.google.com/intl/en_ALL/images/logo.gif");
}
InformationsquelleAutor | 2009-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, die HttpWebRequest.KeepAlive Eigenschaft? Es setzt die entsprechenden Keep-Alive HTTP-header und anhalten der verbindungen. (Natürlich muss dies auch unterstützt und aktiviert die remote-web-server).
Den HttpWebRequest.KeepAlive - Dokumentation auf der MSDN-Website heißt es, dass es eingestellt ist wahr standardmäßig HTTP1.1-verbindungen, so dass ich vermute, dass der server, den Sie Kontaktieren möchten, die nicht erlauben den Anschluss Persistenz.
Proxy verwendet wird, automatisch und die Einstellungen werden von Ihrem system (Internet Explorer) Einstellungen. Es ist auch möglich, überschreiben Sie die proxy-Einstellungen über HttpWebRequest.Proxy Eigenschaft oder durch anpassen der Konfigurationsdatei der Anwendung (siehe http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx).
InformationsquelleAutor petr k.
Set HttpWebRequest.KeepAlive - Eigenschaft True .NET kümmert sich um den rest. Es ist nur database connection pool. Transparent arbeitet.
Können Sie erstellen, die neue Verbindung frei .NETTO wird es herausfinden, dass Sie die Verbindung eines bereits verbundenen server und verwenden es. Hängt auch davon ab, Ihre
Net.ServicePointManager.DefaultConnectionLimit
Anzahl es wird die Etablierung von neuen verbindungen (wenn Sie multhithreading).InformationsquelleAutor dr. evil
Können Sie die HttpWebRequest.KeepAlive - Eigenschaft auf true.
Für die Proxys, es ist eine Eigenschaft auch: HttpWebRequest.Proxy
InformationsquelleAutor Lucero
Ich hatte ein ähnliches Problem bei dem HttpWebRequest.KeepAlive = true war nicht genug
es lebendig zu halten. Die Verbindung blieb nur, nachdem ich Anfrage.UnsafeAuthenticatedConnectionSharing = true und
ServicePointManager.MaxServicePointIdleTime = 100000;//Vermeidung von 0 oder niedrige Werte
InformationsquelleAutor dmihailescu
Wenn Sie mit Http 1.1 sollte man sich nicht mit Keep-Alive und die Verbindung wird implizit Keep-Alive.
Den
HttpWebRequest.KeepAlive
Eigenschaft kann festgelegt werden, aber wenn Sie das senden einer Http 1.1 Anfrage auch eigentlich nicht den header, es sei denn, Sie legen es zu Schließen.Hier ist eine weitere Frage, die mehr Infos hat:
ist eine HTTP/1.1 Anfrage implizit keep-alive standardmäßig?
InformationsquelleAutor Rick Strahl