Darshana
Darshana

Reputation: 2548

Unable to read data from the transport connection: The connection was closed error in console application

I have this code in console application and it runs in a loop

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

after few loops it gives

Unable to read data from the transport connection: The connection was closed

error. any idea why this happen? thanx..

Upvotes: 12

Views: 29692

Answers (3)

Darshana
Darshana

Reputation: 2548

After adding

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

it works fine..

I found it form this blog post

WebRequest and Unable to read data from the transport connection Error

Upvotes: 25

JohnnBlade
JohnnBlade

Reputation: 4327

Try disposing the reader in the finally block of your try catch

Upvotes: -5

Michael
Michael

Reputation: 9042

I just tried the code, looping 10 times to load google.com and it worked for me. Is there something special about search - perhaps try replacing it with another uri. I did not include findForMatch - I assume it is not doing anything that would cause the exception.

Upvotes: 0

Related Questions