0
我正在编写一个简单的应用程序来查询一段时间内的某个URL以检测更改,但是我注意到在5,000次请求之后,请求将开始时间到。.NET - 在一段时间后请求超时
它确实循环通过主机(具有大约200个不同的主机来循环)
目标和源极连接都是极为稳定的。
重新启动程序后,超时没有问题。
下面是相关代码:
public static string download_data()
{
String ret = String.Empty;
try
{
Uri newUri = new Uri(FinalURL.Replace(Host,Hosts[bestHostIndex]));
var request = (HttpWebRequest)WebRequest.Create(newUri);
request.Method = "GET";
request.AllowAutoRedirect = true;
request.KeepAlive = true;
request.Referer = EscapedURL;
request.UserAgent = UA;
request.Headers.Add("Pragma", "no-cache");
request.Timeout = 3000;
request.Host = HostMain;
request.Proxy = null;
request.CookieContainer = Session.Cookies;
using (var resp = request.GetResponse())
{
var reader = new StreamReader(resp.GetResponseStream());
ret = reader.ReadToEnd();
}
return ret;
}
catch(WebException e)
{
Console.WriteLine("Error: "+e.Message);
if (e.Status == WebExceptionStatus.ProtocolError)
{
WebResponse resp = e.Response;
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
ret = sr.ReadToEnd();
}
}
return ret;
}
}
很奇怪,因为我认为那里是有连接的问题,然后重新启动应用程序将不会解决问题。看起来网络在应用运行时间越长的时候就会“堵塞”。也许我没有正确地冲洗资源或类似的东西。
此外,可能有必要提及第一个请求总是超时。
帮助将是巨大的
感谢您的支持! –