• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Tolias

Получаю страницу с сервера вот так:
<!--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 секунд выставил, но программа по прежнему иногда зависает на несколько минут на строке получения контента. Как решить проблему?
 
A

a0z

Получаю страницу с сервера вот так:
<!--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
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!