У меня возникла проблема с .NET, определяющим настройки прокси-сервера, настроенные через Internet Explorer.
Я пишу клиентское приложение, которое поддерживает прокси, и для тестирования я настроил массив из 9 серверов squid для поддержки различных методов проверки подлинности для HTTP и HTTP. У меня есть script, который обновляет IE до любой конфигурации, которую я выбираю (какой прокси, обнаружение через "Авто", PAC или жесткий код).
Я попытался использовать 3 метода ниже, чтобы определить конфигурацию IE через .NET. В частности, я заметил, что .NET собирает неправильный набор прокси-серверов. IE имеет правильные настройки, и если я просматриваю веб-страницы с помощью IE, я вижу, что я нахожусь на правильных серверах через wirehark.
WebRequest.GetSystemWebProxy().GetProxy(destination);
GlobalProxySelection.Select.GetProxy(destination);
WebRequest.DefaultWebProxy
Ниже приведены следующие советы:
- My script устанавливает файл 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.
- Hardcoding прокси-серверов в IE ALWAYS работает
- Время всегда решает проблему - если я покину компьютер около 20 или 30 минут и вернусь,.NET подберет правильные настройки прокси-сервера, как если бы кешированный PAC script истек.