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

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

ОДНАКО работает только при открытии Fiddler? Когда fiddler не работает, я просто получаю "Тайм-аут запроса"

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

Спасибо

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

старше, но я обнаружил ту же проблему в нашем коде. Это было из-за того, что в javascript остались команды console.log. Это привело к блокировке кода javascript.

Ответ 6

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

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

Dim proxy = WebRequest.GetSystemWebProxy()
oRequest.Proxy = proxy