Webclient.downloadfile займет слишком много времени до отправки первого запроса
-
12-10-2019 - |
Вопрос
Я написал очень простое приложение для консоли, которое просто загружает файл, используя следующий кусок кода:
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");