Mit einem Keep-Alive-Verbindung in WinRT die HttpClient Klasse?
Unserer WinRT-app ist unglaublich langsam beim öffnen von verbindungen zu unseren Servern. Anfragen von ~500ms ausgeführt. Dies blockiert einige unserer Szenarien.
Beim Debuggen, bemerkten wir, dass, wenn Fiddler ' aktiv ist, werden die Anfragen sind viel schneller - ~100ms pro Anfrage. Einige Recherchen später haben wir das verstanden, war, weil Fiddler war mit Keep-Alive-verbindungen, wenn die Aufrufe, die unser weitergeleitete Anrufe viel schneller.
Wir doppelt überprüft, gibt es zwei Möglichkeiten.
- Setzen wir UseProxy auf false gesetzt und beobachtet, dass die Anfrage ging zurück zu langsam.
- Wir ausgeschaltet Fiddler ' s "die Wiederverwendung von verbindungen" - option und beachten Sie, dass die Anfragen gingen zurück, langsam.
Wir haben versucht, die Aktivierung keep-alive-durch die Verbindung von header (.- Verbindung.Add("Keep-Alive")), aber diese nicht scheinen, um eine Wirkung - in der Tat, der Kopf scheint zu krass ignoriert .NET-Komponente und wird nicht gesendet, der auf dem Antrag (wieder, durch die Untersuchung thru Fiddler).
Hat jemand wissen, wie man keep-alive-Anforderungen in Windows 8, WinRT, HttpClient-Klasse?
Ja, das mit 1.1. Danke für die links, aber ich sehe nicht, wie die erste gilt - wir sind nicht immer Fehler. Für die 2. - habe ich angegeben, meine Frage, haben wir versucht, mit der Verbindung Kopf - ich bin nicht wirklich sicher, wie sich die vollständige Liste der Header ist hilfreich (sorry).
Hehe, nee, ich weiß, aber man weiß nie, was einen zweiten Blick auf die Dinge hat 🙂 viel Glück!
InformationsquelleAutor Shahar Prish | 2013-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den folgenden Sätzen die richtigen Header zum einschalten keep-alive für mich (client ist ein HttpClient)
Wenn Sie möchten, zu drehen, keep-alive off mit
InformationsquelleAutor Adam
Versuchen Sie es mit dem HttpContent-Klasse zum hinzufügen von Kopfzeilen - so etwas wie dieses, basierend auf (aber nicht getestet) http://social.msdn.microsoft.com/Forums/en-CA/winappswithcsharp/thread/ce2563d1-cd96-4380-ad41-6b0257164130
Hinter den kulissen HttpClient verwendet HttpWebRequest, die Ihnen direkten Zugang zu den KeepAlive-aber da wirst du durch HttpClient können Sie nicht direkt zugreifen, die Eigenschaft auf der HttpWebRequest-Klasse.
BEARBEITEN
Da Sie nur wollen, zu BEKOMMEN, kannst du das mit:
Wir versucht, indem Sie die Keep-Alive-header sowohl durch DefaultHeaders und durch Veränderungen in der HttpRequestMessage. Aber wir haben nicht versucht, es direkt auf das request-Objekt. Ich werde versuchen, dass, aber da die anderen 2 Methoden, nicht, dass der Header in der Anfrage, ich habe keine große Hoffnungen.
Getestet habe ich den genauen code für die GET-Anfrage in eine winrt app und bekomme ich Connection: Keep-Alive als nur request-header. 'Funktioniert auf meiner Maschine' : )
InformationsquelleAutor Adam Tuliper - MSFT