Asp.net WebRequest.Create-操作已超时
我试图在我自己的网站上抓取几个页面,但在我的实时环境中,我得到了一个超时webException(“操作已超时”),但在我的测试环境中,没有。超时不会在同一页面上发生两次,而是在一些请求之后随机发生。第一次超时后,超时的频率增加 测试环境上的RequestUrString: live环境中的RequestUristing:Asp.net WebRequest.Create-操作已超时,asp.net,httpwebrequest,timeout,web-crawler,Asp.net,Httpwebrequest,Timeout,Web Crawler,我试图在我自己的网站上抓取几个页面,但在我的实时环境中,我得到了一个超时webException(“操作已超时”),但在我的测试环境中,没有。超时不会在同一页面上发生两次,而是在一些请求之后随机发生。第一次超时后,超时的频率增加 测试环境上的RequestUrString: live环境中的RequestUristing: 我会尝试设置webRequest.ServicePoint.ConnectionLimit=100试试这个(但只针对您的测试环境) 保持活动状态:如果对Internet资
我会尝试设置
webRequest.ServicePoint.ConnectionLimit=100
试试这个(但只针对您的测试环境)
保持活动状态:如果对Internet资源的请求应包含带有值的连接HTTP头,则为true
webRequest.KeepAlive=truewebRequest.Timeout=95*95*100000
你的爬行代码到底在哪里?它在web应用程序中还是外部应用程序中?如果您在浏览器中导航到RequestUrString,是否也会出现超时?我的代码位于web应用程序中。当我在浏览器中导航到RequestUrString时,会显示页面。您是否曾经得到过此问题的答案?我也有同样的问题。
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();
.....
}
}
}
}