При загрузке страницы из сервера программа иногда очень долго пытается ее получить
Код:
WebResponse response;
Stream receiveStream;
StreamReader readStream;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(stringFaveUrl);
request.UserAgent = stringUserAgent;
request.Timeout = timeout * 1000;
request.CookieContainer = userData.cookie;
//swlog.WriteLine(DateTime.Now + ": request.GetResponse()"); swlog.Flush();
response = request.GetResponse();
receiveStream = response.GetResponseStream();
readStream = new StreamReader(receiveStream, Encoding.Default);
content = readStream.ReadToEnd();
Stream receiveStream;
StreamReader readStream;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(stringFaveUrl);
request.UserAgent = stringUserAgent;
request.Timeout = timeout * 1000;
request.CookieContainer = userData.cookie;
//swlog.WriteLine(DateTime.Now + ": request.GetResponse()"); swlog.Flush();
response = request.GetResponse();
receiveStream = response.GetResponseStream();
readStream = new StreamReader(receiveStream, Encoding.Default);
content = readStream.ReadToEnd();
Все нормально пашет. Но вот только иногда программа очень долго(до 5 минут доходило) выполняет эту строку:
Код:
content = readStream.ReadToEnd();
после чего падает в Exception. Я так понял, иногда программа не может получить ответ от сервера и продолжает ждать. Это исключение я отлавливаю. Но вот как можно ограничить это ожидание например до 15 секунд? чтобы оно не длилось несколько минут...
для request я таймаут в 15 секунд выставил, но программа по прежнему иногда зависает на несколько минут на строке получения контента. Как решить проблему?
Нужно читать из потока асинхронно: http://msdn.microsoft.com/en-us/library/system.io.stream.beginread.aspx