2012-07-04 11 views
10

ho questo codice in un'applicazione console e funziona in un cicloImpossibile leggere i dati dal collegamento nazionale: Il collegamento è stato errore chiuso in un'applicazione console

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); 
} 

dopo pochi cicli dà

Impossibile leggere i dati dalla connessione di trasporto: la connessione è stata chiusa

errore. qualche idea del perché questo accada? thanx ..

+0

Potrebbe essere qualsiasi cosa. Forse il server non ti piace picchiarlo. – leppie

+4

Btw, non rilanciare la tua eccezione, registra meglio la tua eccezione o lascia che l'eccezione raggiunga una posizione più alta, e prendila lì. L'eccezione – JohnnBlade

+0

proviene da 'reader.ReadToEnd() ' – Darshana

risposta

22

Dopo aver aggiunto

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

funziona bene ..

Ho trovato forma questo post del blog

WebRequest and Unable to read data from the transport connection Error

+0

Hmm, non ho idea del perché funzioni, ma lo fa! Strano! Forse è IIS Express o qualcosa del genere. – fourpastmidnight

+0

Grazie mille, ha funzionato nel mio caso, ho sofferto per qualche tempo. –

+2

Perché non funziona con HTTP 1.1? –

0

Ho appena provato il codice, eseguendo il ciclo 10 volte per caricare google.com e ha funzionato per me. C'è qualcosa di speciale su search - forse prova a sostituirlo con un altro uri. Non ho incluso findForMatch - Presumo che non stia facendo nulla che possa causare l'eccezione.

+0

non sta succedendo tutto il tempo. eccezione proviene da 'reader.ReadToEnd() ' – Darshana

-5

Prova smaltire il lettore nel blocco finally del vostro tentativo di cattura

+4

-1: la risposta non ha senso. – leppie

Problemi correlati