C # HttpWebRequest проблема - PullRequest
       4

C # HttpWebRequest проблема

1 голос
/ 03 марта 2011

Это какая-то странная проблема. Я давно пользуюсь HttpWebRequest. Но никогда не сталкивался с этой проблемой раньше. Сайт, на котором я работаю, огромен по размеру, по крайней мере, 3 МБ на каждой странице.

В XP это не дает ошибки, но удаление неполной страницы.

На сервере win7 или 2008 эта ошибка отображается

"Невозможно прочитать данные из транспортное сообщение: существующее соединение было принудительно закрыто удаленный хост "

. Любая помощь будет очень ценится.

Ответы [ 3 ]

1 голос
/ 03 марта 2011

Возможно, проблема в том, что интернет-провайдер обслуживает страницы, фильтрующие HTTP-запросы GET.

Попробуйте добавить следующий заголовок ACCEPT:

webRequest.Accept = "*/*";
0 голосов
/ 09 марта 2011

Потратив на это 5 дней, я пришел к выводу, что это большая ошибка .net И, наконец, я решил эту проблему с помощью компонента WebBrowser.Хотя мне это не очень нравится, потому что он не работает вне основного потока.Но это действительно быстро и списывает эти страницы, как чемпион.

0 голосов
/ 03 марта 2011

Веб-сервер или человек посередине, например прокси убивает ваше соединение. Я так понимаю, этот запрос прекрасно работает в браузере. Я бы сделал несколько вещей:

  1. Это много данных - убедитесь, что ваши таймауты (Timeout и ReadWriteTimeout) установлены достаточно высокими.
  2. Сделайте так, чтобы этот запрос выглядел так, как будто он исходил из реального браузера - используйте инструмент, такой как Fiddler или Netmon, чтобы извлечь и скопировать заголовки из браузера, сделавшего такой же запрос - UserAgent, Accepts, Content-Encoding и т. Д. Видел много сайтов, рвотных когда стандартные заголовки отсутствуют.
  3. Файлы cookie могут быть важны (некоторые сайты используют их для базовой защиты от DDoS) - снова используйте Fiddler для наблюдения за реальным взаимодействием браузера.

Скрипач

NetMon

Дайте нам знать, как вы попали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...