2012-07-04 21 views
10

Mam ten kod w aplikacji konsoli i działa w pętliNie można odczytać danych z połączenie: Połączenie było zamknięte błąd w aplikacji konsoli

try 
{ 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search); 
     request.Headers.Add("Accept-Language", "de-DE"); 
     request.Method = "GET"; 
     request.Accept = "text/html"; 
     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (StreamReader reader = new StreamReader(response.GetResponseStream(), 
        Encoding.ASCII)) 
      { 
       string html = reader.ReadToEnd(); 
        FindForMatch(html, url); 
      } 
     } 
} 
catch (Exception ex) 
{ 
     throw new Exception(ex.Message); 
} 

po kilku pętlach daje

Nie można odczytać danych z połączenia transportowego: połączenie zostało zamknięte

Błąd

. jakikolwiek pomysł, dlaczego tak się stało? thanx ..

+0

Może być cokolwiek. Być może serwer nie polubi cię. – leppie

+4

Btw, nie wyrzucaj ponownie wyjątku, lepiej zaloguj się na wyjątek lub pozwól bańce wyjątku na wyższą lokalizację i złap go tam wyjątek – JohnnBlade

+0

pochodzący z 'reader.ReadToEnd() ' – Darshana

Odpowiedz

22

Po dodaniu

request.KeepAlive = false; 
request.ProtocolVersion = HttpVersion.Version10; 

działa dobrze ..

I okazało się, że tworzą tę blogu

WebRequest and Unable to read data from the transport connection Error

+0

Hmm, nie mam pojęcia, dlaczego to działa, ale tak jest! Dziwne! Może to IIS Express czy coś takiego. – fourpastmidnight

+0

Dziękuję bardzo, zadziałało w moim przypadku, walczyłem przez jakiś czas. –

+2

Dlaczego nie działa z protokołem HTTP 1.1? –

0

Właśnie wypróbowałem kod, zapętlając 10 razy, aby załadować stronę google.com i zadziałało dla mnie. Czy jest coś wyjątkowego w przypadku search - może warto spróbować zastąpić go innym uri. Nie zawierałem findForMatch - Zakładam, że nie robi nic, co spowodowałoby wyjątek.

+0

to nie dzieje się przez cały czas. wyjątek pochodzi z 'reader.ReadToEnd() ' – Darshana

-5

Wypróbuj usuwania czytelnika w bloku finally swojej try catch

+4

-1: Odpowiedź nie ma sensu. – leppie

Powiązane problemy