Httpwebreqest работает с Fiddler On в противном случае Timeout

Я получаю странную ошибку. Я установил скрипт, который прекрасно работает, когда Fiddler открыт - он загружает отчет с веб-сайта, используя httpwebrequest, и все работает отлично!

ОДНАКО это работает только когда Fiddler открыт? Когда fiddler не работает, я просто получаю "Запрос времени ожидания"

Кто-нибудь знает, как это исправить и заставить его работать с моим приложением ASP.NET MVC?

Спасибо

Изменить: Спасибо за ответ! Что касается прокси-сервера - я хотел протестировать этот сценарий в Windows Azure - так мало смущает вопрос о том, как настроить параметры прокси-сервера по умолчанию?

6 ответов

Для искателей вот еще одна мысль. У меня есть приложение, которое автоматизирует мой сайт. Приложение использует HttpWebRequest и HttpWebResponse в.Net 4.0. После двух или трех успешных GET следующий будет заблокирован последовательно. В другом посте говорилось, что неправильное закрытие HINTERNET может привести к блокировке приложения на последующем GET для того же хоста из-за ограничения количества параллельных подключений к одному хосту. Я не знаю, происходило ли это под одеялом, но я решил вернуться и определить, где можно что-то закрыть.

Я закрыл все мои объекты HttpWebResponse в коде, и моя проблема исчезла. Исходя из этого, я не понимаю, почему Фиддлер замаскировал проблему, но это произошло. Перед добавлением закрытий конкретный запрос в последовательности будет постоянно истекать. После закрытия ответов все прояснилось и я смог запустить без прокси через Fiddler.

Закрытие всех объектов HttpWebRequest, предложенных @ProfVonLemongargle, решило ту же проблему, что и я.

Fiddler, вероятно, закрывает подключения к серверу, поэтому ограничение одновременных подключений маскируется, когда ваше приложение использует его в качестве прокси. Дополнительную информацию смотрите в этой ветке: время ожидания HttpWebRequest при втором вызове истекло

Имейте в виду, что Fiddler действует как прокси. Работа приложения во время работы Fiddler, но не в противном случае, может указывать на проблему с настройкой прокси-сервера по умолчанию. Откройте Свойства обозревателя (возможно, через IE) и проверьте настройки прокси. В частности, обратите внимание, настраиваете ли вы через скрипт.

Я упомяну одну очень маловероятную возможность, хотя на самом деле это случилось со мной. У меня на компьютере был установлен определенный антивирусный продукт. По какой-то причине он решил, что срок моей подписки истек. В результате программное обеспечение не запускалось и, следовательно, не могло обновлять список программ, которым разрешен доступ к Интернету. Программы, которые я установил после истечения срока действия, не будут работать, если не будет запущен Fiddler (поскольку Fiddler был установлен до истечения срока действия, он был в списке "Good"). Любая другая программа, установленная после истечения срока действия, была в списке "Плохо" (по умолчанию).

Старая цепочка, но я обнаружил ту же проблему в нашем коде. Это было потому, что в javascript были оставшиеся команды console.log. Это привело к блокировке кода JavaScript.

Вы работаете с HTTPS? Если это так, ваш код может не доверять сертификату удаленного сайта, и Fiddler может передавать данные в ваше приложение. Отправьте нам сообщение об ошибке и минимальный объем кода, который повторяет эту проблему.

У меня была такая же проблема в корпоративной сети, я открыл Fiddler2 для диагностики того, что отправлялось / получалось, и проблема исчезла! После дальнейших исследований я обнаружил, что Fiddler туннелирует трафик через него, как прокси, и моя корпоративная сеть также использует сценарий автоматической настройки для прокси (я предполагаю, что Fiddler туннелировал его через надлежащий системный прокси, о котором мое приложение не знало)

Чтобы запустить мою программу VB.net, все, что мне нужно было сделать, это добавить параметры прокси в запрос:

Dim proxy = WebRequest.GetSystemWebProxy()
oRequest.Proxy = proxy
Другие вопросы по тегам