Назад | Перейти на главную страницу

Как я могу отладить PAC (автоконфигурацию прокси) в Windows 8.1 (IE11 и современный интерфейс)?

В старых системах, таких как Windows 7 + IE10, вызов «alert ()» в файле PAC приведет к отображению диалогового окна. Однако в Windows 8.1 диалоговые окна не отображаются, даже если кажется, что IE11 использует PAC.

Моя текущая ситуация заключается в том, что IE11 может использовать прокси (SOCKS) (возвращенные PAC) нормально, но приложения Modern UI полностью отключены от Интернета. Кажется, что IE11 и Modern UI по-разному относятся к настройке PAC, но я не могу найти способ отладить ее.

В общем, мои вопросы

  1. Как я могу отладить PAC с помощью IE11 в Windows 8.1?
  2. Как я могу отладить PAC с помощью Современный интерфейс в Windows 8.1?

Изменения PAC-файла IE11

Microsoft внесла изменения в то, как IE11 обрабатывает локальные файлы PAC. Вы можете прочитать о них Вот или см. ниже краткую информацию.

Также обратите внимание, что alert() заявления больше не работаю начиная с Windows 8.


В IE11 использование PAC-файла через файловый протокол становится невозможным, если вы не добавите следующий ключ реестра:

[HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
(DWORD)"EnableLegacyAutoProxyFeatures"=1

Примечание: операторы предупреждения больше не будут отображаться при использовании Windows 8 или выше!


Файл DEBUG PAC с AUTOPROX (Ссылка на скачивание)

Иногда вам нужно просто проверить свой PAC-файл, если ожидаемый маршрут возвращается, хотя у вас нет доступа к рассматриваемому веб-сайту. Для такого тестирования вы можете использовать (прилагается) служебный инструмент командной строки autoprox.exe, созданный Пьером-Луи Коллом.

При запуске в 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:

  1. Если вы укажете несуществующий PAC-файл (например, опечатку в командной строке), результат autoprox.exe будет:

    ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.

  2. Когда Pac-файл содержит синтаксические ошибки, вы обычно получаете следующее сообщение:

    ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.

После завершения локального теста PAC-файл необходимо скопировать на веб-сервер, где он будет доступен по http-протоколу.