У меня проблема с тем, что .NET обнаруживает настройки прокси, настроенные через Internet Explorer.
Я пишу клиентское приложение, которое поддерживает прокси, и для тестирования я настроил массив из 9 серверов squid дляподдержка различных методов аутентификации для HTTP и HTTP.У меня есть скрипт, который обновляет IE до любой конфигурации, которую я выберу (какой прокси, обнаружение через «Авто», PAC или жесткий код).
Я попробовал 3 метода ниже для обнаружения конфигурации IE через .NET.В некоторых случаях я замечаю, что .NET выбирает неправильный набор прокси-серверов.IE имеет правильные настройки, и если я просматриваю Интернет с помощью IE, я вижу, что использую Wireshark на правильных серверах.
WebRequest.GetSystemWebProxy().GetProxy(destination);
GlobalProxySelection.Select.GetProxy(destination);
WebRequest.DefaultWebProxy
Вот следующие советы:
- Мой сценарий устанавливает PAC-файл на веб-сервере, обновляет конфигурацию в IE, затем очищает кэш IE
- .NET, похоже, "зависает" в определенной конфигурации прокси, и мне нужно установить другую конфигурацию для .NET, чтобы понять, что произошли изменения.Иногда кажется, что выбирается какой-то случайный набор серверов (я уверен, что они не случайные, просто набор серверов, которые я использовал один раз и находятся в каком-то кэшированном файле PAC или что-то в этом роде).Например, я проверю прокси-сервер для получателя "https://www.secure.com", и у меня может быть настроен IE и, таким образом, ожидается получение" http://squidserver:18", и вместо этого он вернет "http://squidserver:28" (порт 18 работает с NTLM, 28 работает без аутентификацииВсе серверы squid работают.
- Похоже, что это не проблема для XP, только Vista, 2003 и Windows 7.
- Жесткое кодирование прокси-серверов в IE ВСЕГДА работает
- Время всегда решает проблему - если я оставлю компьютер на 20 или 30 минут и вернусь, .NET подберет правильные настройки прокси-сервера, как если бы срок действия кэшированного сценария PAC истек.