При Загрузке Страницы Из Сервера Программа Иногда Очень Долго Пытается

  • Автор темы Tolias
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Tolias

Гость
#1
Получаю страницу с сервера вот так:
<!--shcode--><pre><code class='c#'> 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();[/CODE]
Все нормально пашет. Но вот только иногда программа очень долго(до 5 минут доходило) выполняет эту строку:
<!--shcode--><pre><code class='c#'>content = readStream.ReadToEnd();[/CODE]
после чего падает в Exception. Я так понял, иногда программа не может получить ответ от сервера и продолжает ждать. Это исключение я отлавливаю. Но вот как можно ограничить это ожидание например до 15 секунд? чтобы оно не длилось несколько минут...
для request я таймаут в 15 секунд выставил, но программа по прежнему иногда зависает на несколько минут на строке получения контента. Как решить проблему?
 

a0z

Well-Known Member
15.03.2011
108
0
#2
Получаю страницу с сервера вот так:
<!--shcode--><pre><code class='c#'> 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();[/CODE]
Все нормально пашет. Но вот только иногда программа очень долго(до 5 минут доходило) выполняет эту строку:
<!--shcode--><pre><code class='c#'>content = readStream.ReadToEnd();[/CODE]
после чего падает в Exception. Я так понял, иногда программа не может получить ответ от сервера и продолжает ждать. Это исключение я отлавливаю. Но вот как можно ограничить это ожидание например до 15 секунд? чтобы оно не длилось несколько минут...
для request я таймаут в 15 секунд выставил, но программа по прежнему иногда зависает на несколько минут на строке получения контента. Как решить проблему?
Думаю надо ещё выставить HttpWebRequest.ReadWriteTimeout
 
Статус
Закрыто для дальнейших ответов.