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

て烟熏妆下的殇ゞ 提交于 2019-11-30 03:03:23

问题


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..


回答1:


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




回答2:


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.




回答3:


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



来源:https://stackoverflow.com/questions/11323584/unable-to-read-data-from-the-transport-connection-the-connection-was-closed-err

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!