Почему при попытке считать поток получаю исключение «System.Net.WebException: Время ожидания операции истекло»?

Добрый вечер. Пытаюсь распрасить несколько страниц сайта, и после минуты работы приложения получаю исключение "System.Net.WebException: Время ожидания операции истекло". Запросы отправляются из 5-ти потоков к разным страницам. Вот код отправки запроса:

WebRequest request = WebRequest.Create(new Uri("http://site.com/page1.html"));
                request.Method = "GET";
                request.Timeout = 3600000;

                using (WebResponse response = request.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        using (StreamReader reader = 
                                  new StreamReader(stream, Encoding.GetEncoding("windows-1251")))
                        {
                            string result = reader.ReadToEnd();
                        }
                    }
                }


Отладчик кидает на строку string result = reader.ReadToEnd();. Если убрать эту строчку, то приложение отлично работает.

Если оставить эту строчку, но сделать приложение однопоточным, то приложение тоже работает. Таймаут в час выставил уже в отчаянии. Не могу понять, в чем дело, ведь все неуправляемые ресурсы неявно освобождаются с помощью using, Помогите, пожалуйста, разобраться с проблемой.
  • Вопрос задан
  • 3987 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы