如何在Windows 8.1(IE11和Modern UI)上调试PAC(代理自动配置)?


12

在较旧的系统上,例如Windows 7 + IE10,在PAC文件中调用“ alert()”将导致显示对话框。但是,在Windows 8.1中,即使IE11似乎正在使用PAC,也不会显示任何对话框。

我目前的情况是IE11可以使用(SOCKS)代理(由PAC返回)就可以了,但是Modern UI应用程序已与Internet完全断开。似乎IE11和Modern UI对PAC设置的处理方式有所不同,但我找不到调试它的方法。

总而言之,我的问题是

  1. 如何在Windows 8.1上使用IE11调试PAC ?
  2. 如何在Windows 8.1上使用Modern UI调试PAC ?

1
我遇到了同样的问题-Firefox,Chrome或IE似乎都没有接到警报电话。我已经将utmtools.com/PacMagiccode.google.com/p/pacparser用于“测试”目的。
oviava 2015年

+1为PacMagic。生成器可能会进行一些调整,但是测试功能效果很好。它只是一个独立的exe文件。
尼尔

Answers:


3

IE11 PAC文件更改

Microsoft对IE11处理本地PAC文件的方式进行了更改。您可以在此处阅读有关它们的信息,或在下面查看一些快速信息。

另请注意,该alert()语句自Windows 8起不再起作用


使用IE11,不再可能通过文件协议使用PAC文件,除非您添加以下注册表项:

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

PAC文件通过文件协议示例

注意:使用Windows 8或更高版本时,警报语句将不再显示!


带AUTOPROX的DEBUG PAC文件下载链接

有时,尽管您无法访问所讨论的网站,但如果返回了预期的路由,则只需要测试PAC文件即可。对于此类测试,您可以使用由Pierre-Louis Coll创建的(附加的)命令行实用工具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文件复制到Web服务器,在该服务器上将通过http协议对其进行访问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.