WebRequest.Create - 操作已超时

时间:2011-05-17 08:16:26

标签: asp.net httpwebrequest timeout web-crawler

我正在尝试在我自己的网站上抓取几个页面,但我在我的实时环境中得到超时的webException(“操作已超时”),但在我的测试环境中。超时不会在同一页面上发生两次,而是在一些请求之后随机且经常发生。在第一次超时后,超时的频率上升。

测试环境中的requestUristring: http://localhost/Opgaver/Flytning/Haarde-hvidevarer/Bortkoersel-amerikaner-koeleskab-paa.aspx

live enviroment上的requestUristring: http://www.servicebyen.dk/Opgaver/Flytning/Haarde-hvidevarer/Bortkoersel-amerikaner-koeleskab-paa.aspx

var webRequest = (HttpWebRequest)WebRequest.Create(requestUriString);
webRequest.KeepAlive = false;
webRequest.Timeout = 3 * 30 * 1000;
webRequest.PreAuthenticate = false;

using (WebResponse webResponse = webRequest.GetResponse()) //ERROR OCCURS HERE
{

    using (Stream responseStream = webResponse.GetResponseStream())
    {
         if (responseStream != null)
         {
              using (var reader = new StreamReader(responseStream))
              {
                   string readToEnd = reader.ReadToEnd();
                   .....          
              }

         }                
     }
 }

2 个答案:

答案 0 :(得分:0)

我会尝试设置webRequest.ServicePoint.ConnectionLimit = 100

答案 1 :(得分:0)

试试这个(但仅适用于您的测试环境)。

保持活动:如果对Internet资源的请求应包含值为

的Connection HTTP标头,则为true
  

webRequest.KeepAlive = true;
  webRequest.Timeout = 95 * 95 * 100000;