Webclient.downloadfile займет слишком много времени до отправки первого запроса

StackOverflow https://stackoverflow.com/questions/4718056

Вопрос

Я написал очень простое приложение для консоли, которое просто загружает файл, используя следующий кусок кода:

System.Net.WebClient web = new System.Net.WebClient ();
web.DownloadFile ("http://www.google.com", "file.txt");

На моей предыдущей машине разработки это было очень быстро. Как только я выполнил DownloadFile Метод, запрос прошел через проволоку, и ответ вернулся очень скоро. Я проверил это поведение с помощью инструмента Procmon.

Однако, переключившись на другую машину, которая оказалась гораздо более мощной, чем моя первоначальная коробка разработки, я заметил, что ничто не произойдет около 5-8 секунд, когда призывом к DownloadFile. Анкет Поход на тот же URL с браузером показал бы почти немедленные результаты.

Потратив несколько часов, изучая это, вступив в исходный код .NET, я наконец сдался в System.Net.ServicePointManager.FindServicePoint Где ступенька как -то больше не имело смысла для меня, и где какое -то разрешение прокси, казалось, было в причине.

Я наконец выключил Автоматически обнаруживает настройки в Настройки локальной сети диалог настройки интернета Диалог, найденный в Internet Explorer 8 (я запускаю Windows 7 x64), оставляя диалог без флажести. Это волшебно заставило все делать очень, очень быстро. Нет больше задержки.

Ну, я нашел способ обойти проблему, которую я наблюдал, но я был бы рад, если кто -то сможет поделиться некоторыми идеями относительно того, что может быть не так с моим кодом. Могу ли я каким -то образом добиться того же эффекта, каким -то образом настройка WebClient пример?

Это было полезно?

Решение

Вы пробовали явно установить прокси?

web.Proxy = new WebProxy();

Это должно быть в основном эквивалентно сказать: «Вообще не используйте прокси - даже не пытайтесь».

Другие советы

Вы пробовали установить свойства web.proxy?

Бывший:

System.Net.WebClient web = new WebClient();
web.Proxy = new WebProxy("Address here");
web.DownloadFile("http://www.google.com", "file.txt");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top