Programm hängt beim dritten mal im HttpWebRequest

Als alter Java Hase muss ich mal etwas in C# programmieren. Soweit klappte auch alles, bis auf ein Phänomen:

Ich möchte eine Datei per HTTP-GET periodisch von einem Webserver runterladen. Dabei fiel mir auf, dass genau(!) nach dem dritten Versuch die response anscheinend nicht kommt und irgendwann der timeout zuschlägt. Daher hab ich den code auf folgendes Fragment reduziert:

for (int i = 0; i \> 1");  
  
 request = (HttpWebRequest)WebRequest.Create("[http://www.heise.de/icons/ho/heise.gif"](http://www.heise.de/icons/ho/heise.gif%22));  
  
 Console.WriteLine("\>\> 2");  
  
 response = (HttpWebResponse)request.GetResponse();  
  
 Console.WriteLine("\>\> 3");  
  
  
 }  
 catch (Exception e)  
 {  
 // logger   
 }  
 }  

Ich habe extra mal den recht zuverlässigen Heise-Server gewählt, es aber auch mit anderen servern probiert. Wie gesagt: bei der dritten Iteration hängt das Programm bei

response = (HttpWebResponse)request.GetResponse();

aber wieso?!?!

Hallo!

Die Dokumentation zu HttpWebRequest.GetResponse() besagt:

The GetResponse method returns a WebResponse object that contains
the response from the Internet resource. The actual instance returned
is an HttpWebResponse, and can be typecast to that class to access
HTTP-specific properties.

Caution
You must call the Close method to close the stream and release the
connection. Failure to do so may cause your application to run out of
connections.

Kann das der Grund sein? Du schließt die WebResponse nicht…

Gruß,
Martin

Ahh, vielen Dank, das war der richtige Schubs. Ich hatte bei dem Request nach einem close() gesucht (den es nicht gibt) und dann beim Response nicht mehr nachgeschaut… Anscheinend muss ich aber auch die MSDN etwas sorgfältiger lesen =)