HttpWebRequest bleibt am Leben - wie wird die Verbindung von .net wieder verwendet?

9

Hy, Ich verwende HttpWebRequest in 10 Concurent-Threads, um eine Liste von Bildern herunterzuladen. Ich habe die Bilder nach dem Hostnamen sortiert, so dass jeder dieser Threads ein Bild vom selben Hostnamen erhält.

%Vor%

Nachdem das Programm eine Weile läuft, bekomme ich immer noch eine Timeout-Ausnahme. Meine Gedanken sind, dass ich eine Ausnahme erhalte, weil vielleicht der Host-Server einige Einschränkungen in Bezug auf die concurent-Verbindungen von demselben Benutzer hat.

Wie wird eine Verbindung in .net wiederverwendet? In meinem Programm erstellt jeder Thread eine neue Verbindung zu einem Hostnamen oder verwendet den vorhandenen wegen der KeepAlive-Eigenschaft ??

    
Dorin 06.10.2011, 08:10
quelle

1 Antwort

4

Es scheint, dass das Problem einige Server waren, die http / 1.0 verwendeten. HttpWebRequest ist mit 100 Verhalten fortsetzen, aber der Server unterstützt es nicht.

Also habe ich die Eigenschaft System.Net.ServicePointManager.Expect100Continue in false geändert und dann hat alles funktioniert.

    
Dorin 05.03.2012, 10:34
quelle