WPF HTTPWebRequest Базовое соединение было закрыто: при получении произошла непредвиденная ошибка - PullRequest
2 голосов
/ 03 января 2011

Во-первых, есть ряд других похожих вопросов, и я прочитал их все, и у них есть похожая проблема, но они отличаются от моей проблемы:

В клиентском приложении WPF я делаю несколько запросов HttpWeb на различные веб-сайты. На одном конкретном компьютере и на одном конкретном веб-сайте я получаю следующую ошибку, но только периодически, примерно один раз каждые 4 или 5 запросов:

System.Net.WebException Основное соединение было закрыто: при получении произошла непредвиденная ошибка. в System.Net.HttpWebRequest.GetResponse ()

, а статус в Запросе - ReceiveFailure.

Вот что я пробовал:

  • Изменение времени ожидания на очень большое, отключение поддержки активности и использование http 1.0 вместо 1.1, все из которых не решают проблему
  • Запуск через прокси-сервер, чтобы увидеть, что происходит, но по какой-то странной причине эта проблема не возникает, когда я запускаю точно такой же код через прокси (путем установки объекта прокси в веб-запросе http)
  • Я не могу получить доступ к сайту без проблем с IE и Chrome
  • Попробовал другую машину внутри моей домашней сети, и проблем не было. Аналогично с другой машиной вне сети.

Эта проблема возникла после обновления этой машины до Win7, однако после возврата к WinXP проблема все еще возникает.

Любая помощь очень ценится, все остальные посты были либо для людей, разговаривающих со своими собственными веб-сервисами, и это была проблема конфигурации ASP или что-то в этом роде. Сайт, на который я делаю запросы, тоже является ASP-сайтом, но я не считаю, что это проблема стороннего сайта, поскольку этот точно такой же код работает на других машинах, но не на одном конкретном.

1 Ответ

1 голос
/ 03 января 2011

Состояние ReceiveFailure означает, что ваше приложение начало получать ответ, но оно было закрыто до того, как по какой-либо причине было получено полное сообщение.

Поскольку вы уже изменили время ожидания и т. Д., Но безуспешно, проблема может заключаться в том, что сервер по какой-то причине закрывает поток ответа до полного ответа. Изолированный для конкретной машины может указывать на возможную аппаратную проблему или конфигурацию на этой конкретной машине. Тот факт, что это только для одного веб-сайта на машине, указывает на конфигурацию, а не оборудование. Есть ли что-то другое на этой машине? Обновления? Конфигурация IIS?

Возможно, он работает через IE, Chrome и Proxy, потому что в них уже встроена обработка ошибок (IE и Chrome определенно будут обрабатывать ошибки и повторять запросы, я полагаю, что прокси тоже). Возможно, вам придется встроить часть этой обработки ошибок в ваш код.

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