Как я могу отладить PAC (автоматическая настройка прокси) в Windows 8.1 (IE11 и Modern UI)?
В более старых системах, таких как Windows 7 + IE10, вызов "alert()" в файле PAC приведет к отображению диалогового окна. Однако в Windows 8.1 диалоги не отображаются, даже если IE11, похоже, использует PAC.
Моя текущая ситуация заключается в том, что IE11 может использовать прокси-серверы (SOCKS) (возвращаемые PAC), но приложения Modern UI полностью отключены от Интернета. Кажется, IE11 и Modern UI по-разному относятся к настройке PAC, но я не могу найти способ отладки.
Итак, мои вопросы
- Как я могу отладить PAC с IE11 на Windows 8.1?
- Как я могу отладить PAC с Modern UI на Windows 8.1?
2 ответа
Изменения в PAC-файле IE11
Microsoft внесла изменения в то, как IE11 обрабатывает локальные файлы PAC. Вы можете прочитать о них здесь или посмотреть ниже для некоторой краткой информации.
Также обратите внимание, что alert()
заявления больше не работают с Windows 8.
В IE11 использование PAC-файла через file-protocol больше невозможно, если вы не добавите следующий ключ реестра:
[HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
(DWORD)"EnableLegacyAutoProxyFeatures"=1
Примечание: операторы предупреждений больше не будут появляться при использовании Windows 8 или выше!
Файл DEBUG PAC с AUTOPROX ( ссылка для скачивания)
Иногда вам нужно просто проверить ваш PAC-файл, если ожидаемый маршрут возвращается, хотя у вас нет доступа к рассматриваемому веб-сайту. Для такого тестирования вы можете использовать (прилагается) утилиту командной строки autoprox.exe, созданную Pierre-Louis Coll.
При запуске в
CMD
без дополнительных параметров отображается использование:
C:\temp>autoprox
Version : 2.1.0.0
Written by pierrelc@microsoft.com
Usage : AUTOPROX -s (calling DetectAutoProxyUrl and saving wpad.dat file in temporary file)
Usage : AUTOPROX [-h] url [Path to autoproxy file]
-h: calls InternetInitializeAutoProxyDll with helper functions implemented in AUTOPROX
AUTOPROX url: calling DetectAutoProxyUrl and using WPAD.DAT logic to find the proxy for the url
AUTOPROX url path: using the autoproxy file from the path to find proxy for the url
Example: autoprox -s
Example: autoprox http://www.microsoft.com
Example: autoprox -h http://www.microsoft.com c:\inetpub\wwwroot\wpad.dat
Example: autoprox http://www.microsoft.com http://proxy/wpad.dat
Вот вывод с нашего образца:
C:\temp>autoprox http://us.msn.com c:\temp\sample.pac
The Winsock 2.2 dll was found okay
url: http://us.msn.com
autoproxy file path is : c:\temp\sample.pac
Calling InternetInitializeAutoProxyDll with c:\temp\sample.pac
Calling InternetGetProxyInfo with url http://us.msn.com and host us.msn.com
Proxy returned for url http://us.msn.com is:
PROXY myproxy:80;
Когда вы хотите увидеть, какие функции, связанные с DNS, были вызваны, вы можете дополнительно использовать параметр "-h": Здесь вывод, когда это используется:
C:\temp>autoprox -h http://us.msn.com c:\temp\sample.pac
The Winsock 2.2 dll was found okay
Will call InternetInitializeAutoProxyDll with helper functions
url: http://us.msn.com
autoproxy file path is : c:\temp\sample.pac
Calling InternetInitializeAutoProxyDll with c:\temp\sample.pac
Calling InternetGetProxyInfo with url http://us.msn.com and host us.msn.com
ResolveHostByName called with lpszHostName: us.msn.com
ResolveHostByName returning lpszIPAddress: 65.55.206.229
Proxy returned for url http://us.msn.com is:
PROXY myproxy:80;
Обработка ошибок в autoprox.exe:
Когда вы указываете несуществующий PAC-файл (например, опечатка в командной строке), результат от autoprox.exe будет:
ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.
Когда Pac-файл содержит синтаксические ошибки, вы обычно получаете следующее сообщение:
ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.
После завершения локального теста PAC-файл должен быть скопирован на веб-сервер, где он будет доступен через http-протокол.
Есть инструментpactester
это часть pacparser, упомянутого в комментариях @oviava, который работает в системах Windows и Unix, включая Linux (например,sudo apt install libpacparser1
) и MacOS (например,brew install pacparser
). Это можно использовать для тестирования файлов PAC — оно покажет ожидаемое поведение для этого URL-адреса или сообщит о любых ошибках в файле PAC. например
pactester -p your_pac_file.pac -u http://www.test_site.com