IE11 PAC-file changes
There were changes made by Microsoft to how IE11 handles local PAC files. You can read about them here or see below for some quick info.
Also note, that alert()
statements no longer work as of Windows 8.
With IE11, the usage of a PAC-file through the file-protocol is no
more possible, unless you add the following registry-key:
[HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
(DWORD)"EnableLegacyAutoProxyFeatures"=1
Note: alert-statements will no more appear when using Windows 8 or
higher!
DEBUG PAC File with AUTOPROX (Download Link)
Sometimes you need just to test your PAC-file, if the expected route
is returned, although you have no access to the website in question.
For such testing you can use the (attached) command line-utility tool
autoprox.exe, created by Pierre-Louis Coll.
When starting it in a CMD
without additional parameter the usage is
displayed:
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
Here is the output with our sample:
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;
When you want to see which DNS-related functions have been called, you can use the parameter “-h” in addition: Here the output, when
this is used:
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;
Error-Handling in autoprox.exe:
When you specify a non-existing PAC-file (e.g. typo in the command-line), the result from autoprox.exe will be:
ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.
When the Pac-file contains syntax-errors, you typically receive the following message displayed:
ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.
After finishing the local test, the PAC-file should be copied to the
webserver where it will be accessed through http-protocol.