2011-05-17 337 views
0

我试图在自己的网站上抓取几页,但我在我的实时环境中发生超时webException(“操作已超时”)但在我的测试环境下,不是。超时不会在同一页面上发生两次,而是在一些请求之后随机发生。第一次超时后,超时频率升高。WebRequest.Create - 操作已超时

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

活环境的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(); 
        .....   
       } 

     }     
    } 
} 
+0

您的抓取代码的确切位置在哪里?它在Web应用程序或其外部应用程序中? – VinayC 2011-05-17 08:22:06

+0

我在浏览器中导航到* requestUriString *,你是否也会超时? – Variant 2011-05-17 10:20:24

+0

我的代码位于Web应用程序中。 – user484204 2011-05-17 10:46:23

回答

0

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

保持有效:如果该请求到互联网资源应包含带有值连接HTTP头

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