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;
}
}
很奇怪,因爲我認爲那裏是有連接的問題,然後重新啓動應用程序將不會解決問題。看起來網絡在應用運行時間越長的時候就會「堵塞」。也許我沒有正確地衝洗資源或類似的東西。
此外,可能有必要提及第一個請求總是超時。
幫助將是巨大的
感謝您的支持! –