Internet Explorer不能自动发现http://wpad/wpad.dat auto-config

我被这个问题所困扰。

我已经build立了一个名为wpad.dat的文件(本质上,是一个proxy.pac文件重命名),并把它放在一个内部网站。 我已经设置了DNS条目,因此主机名wpad是Web服务器的CNAME。 我在网站上为.dat文件设置适当的MIMEtypes。 我从DNS全局查询块列表中删除了wpad。

我知道configuration文件在语法上是正确的,因为如果我手动将Internet Explorer的“使用自动configuration脚本”设置为http://wpad/wpad.dat代理显然正在使用(即,我看到我的浏览器显示在日志文件中我拒绝的某些网站拿出我的replace页面。)

不过,我的理解是,我所需要做的就是在“自动检测设置”框中打勾,Internet Explorer本身应该查找http://wpad/wpad.dat – 或者更准确地说http://wpad.localdomain/wpad.dat – 这也是可行的。

任何人都可以帮助我诊断这个问题? 我只是看不到我错过了什么或错在哪里。

谢谢 !!

(注意,也可以使用DHCP设置自动configuration文件,但是我们有一个多站点组织,DHCP服务器和路由器根据位置的不同提供DHCP,远程办公室也使用3G蜂窝调制解调器,这些调制解调器具有非常基本的DHCP设备,另外,只有IE浏览器支持通过DHCP进行networking代理自动发现 – 无论是Firefox还是Safari都不支持,我们实际上并没有使用这两种浏览器,而是为了最大程度的兼容性和易于pipe理/更改我认为通过一个不错的单个DNS条目来完成这个工作肯定会更好。)

大卫,

如果你仍然遇到这个问题,修复起来实际上很简单。 但没有任何文件记载,并花了我很长时间在我的环境中进行分类。 你所做的一切都很好,这就是IE浏览器获取WPAD信息并连接到Web服务器的一个错误。

首先,您不能使用WPAD的CNAMElogging。 使用Alogging。 傻,我知道,这不应该有任何的区别,但它绝对是这种情况。 因此,请删除您的DNS中的CNAME,并为Web服务器的IP地址创build一个Alogging。

其次(这对你来说可能更为棘手),你需要将WPAD.DAT文件放在默认网站的根目录上,这个网站正在监听上面指定的IP地址。 这是关键。 它不会使用主机头字段或类似的东西。

说明:IE所做的是将名称WPADparsing为IP地址。 它必须能够直接parsing到IP地址。 如果它parsing为一个CNAME查询做了一个不同的名称,它将无法正常工作。 所以一旦IE获得了WPADparsing的IP地址,实际上连接到http:// <> /WPAD.dat。 如果你在同一台服务器上设置了不同的网站,在端口80上监听,但使用像我这样的主机头域(IE,“默认网站”以及“WPAD网站”),那么你会把所有的东西都正确地设置好了,但是不能这么做。 将您的WPAD.DAT文件的副本放在默认网站的根目录下,并开始工作。

当然,如果您无法访问该网站的根目录(或者您无法确保该网站的根目录),那么您可能需要考虑将您的WPAD网站移至不同的服务器,分配给该服务器的IP地址的根。

无论如何,请给一个镜头。 这是对我有用的过程。 花了我很长时间才得到它的工作,但现在已经可靠地工作了很长时间。 以上所述仅仅是我对IE浏览器如何工作与WPAD.DAT文件的理解,也许不是正确的 – 它只是基于观察它在我自己的环境中做了什么。 你可能会有所不同,但我至less会花一些钱来解决你的问题。

让我知道你如何得到! Matto 🙂

解决IE8的另一种方法(也可用于IE7)是更改组策略中的一些设置。

  • 计算机configuration>pipe理模板> Windows组件> Internet Explorer>使每台计算机的代理设置(而不是每个用户)=启用
  • 用户configuration>pipe理模板> Windows组件> Internet Explorer>禁用自动代理脚本caching=已启用

通过修改上述2个设置,我可以使WPAD设置在IE8中工作。

注意:您不需要在域环境中使用此。 在工作组PC上,只需使用GPEDIT.MSC来更改本地计算机策略。

请参阅: 如何在Internet Explorer中禁用自动代理caching

问候,Kym

这个服务器错误的问题在谷歌search中显得很高,这就是为什么我要回复它。 我希望别人觉得这个有用,因为这个问题对我来说是一个真正的痛苦。

几乎所有大约50个用户的Windows 7计算机都受到了影响 – 就我而言,重启IE并不能接受,所以我最终解决了这个问题:

首先这里有几个有用的,但很难find我遇到的链接:

http://blog.frankleonhardt.com/2011/wpad-and-windows-7-and-internet-explorer-8/

http://kb.k12usa.com/Knowledgebase/Proxy-Auto-Detect-WPAD-Issues-With-IE-Windows-7

http://infratalk.wordpress.com/2011/09/10/troubleshooting-windows-proxy-autodiscovery-wpad/

我build议你先阅读每一个链接。

以下来自拳头链接的引用特别有趣:

“事实certificate,微软的那些聪明人已经实现了一项function,在几次失败的尝试后停止检查WPAD服务器,它知道它知道漫游机器在哪个networking上,如果它不是在registry中,打算再次查看,如果你只是实现了,那么这个用处就很多了。“

我发现在链接中提到的wpadregistry项,实际上我是如何在google中find链接的。 在testing过程中我感到无情,发现以下工作:

closures所有IE会话,打开控制面板 – > Internet选项 – >连接标签 – >局域网设置,并取消勾选“自动检测设置”(和所有其他选项) – 不要再打开IE浏览器。

删除以下registry项:

 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad 

打开控制面板 – > Internet选项 – >连接选项卡 – >局域网设置,然后点击“自动检测设置”。

如果你刷新你的registry窗口(F5),你应该看到重新创build的wpadregistry项,但它将是空的。

现在打开IE。 再次刷新wpad reg,您应该看到它填充了包含各种wpad信息的子项。

这是一个修复,而不必重置IE浏览器,但我仍然需要部署在50台机器不知何故。 我做了如下:

我通过使用我已经重置的计算机创build了以下注册(不要复制这个逐字,因为它是基于我们的域创build的,我编辑了域名),wpadOverride行被经常添加:

 Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad] "WpadLastNetwork"="{F03DC3BF-50F6-4DB1-9570-CF84875F6EDC}" "WpadOverride"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad\a4-0c-c3-62-7b-2d] "WpadDecisionReason"=dword:00000000 "WpadDecisionTime"=hex:10,50,19,cf,b1,73,cc,01 "WpadDecision"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad\{F03DC3BF-50F6-4DB1-9570-CF84875F6EDC}] "WpadDecisionReason"=dword:00000000 "WpadDecisionTime"=hex:10,50,19,cf,b1,73,cc,01 "WpadDecision"=dword:00000001 "WpadNetworkName"="example.local" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad\{F03DC3BF-50F6-4DB1-9570-CF84875F6EDC}\a4-0c-c3-62-7b-2d] 

这被添加到用户login脚本,基本上删除了注册码并将其replace。

然后我创build了一个GPO来禁用“自动检测设置”,并手动添加了wpad url:

用户configuration – >策略 – > Windows设置 – > Internet Explorer维护 – >连接 – >自动浏览器configuration| 取消勾选“自动检测configuration设置”,勾选“启用自动configuration”,在“自动configurationURL”中插入“ http://wpad.example.local/wpad.dat ”。

我也启用了“IE浏览器WPAD决策caching覆盖”(见上面的第二个链接)。

然后,我离开了这几天,部署到尽可能多的计算机,然后禁用“自动configurationURL”,并勾选“自动检测configuration设置”再次从login脚本中删除注册码。

我这样做,因为它似乎不工作通过简单地解除,然后通过GPO勾选“自动检测configuration设置”框,所以添加的URL可能不是最终需要。

我希望WpadOverride可以在没有额外的步骤的情况下工作,但不幸的是它并没有在我的情况下。

顺便说一句,使用cname在我们的networking上工作得非常好。

在修复期间closures的任何计算机都是在手动处理之后才处理的。

我希望这可以帮助其他谁遇到这个问题,就像我通过谷歌。 微软这个“function”简直是愚蠢的。

我有完全相同的问题,但只有几台电脑…

Wireshark显示,在访问目标Web服务器之前,IE不会尝试networking上的任何内容。 设置为主机wpad的Web服务器响应该特定IP地址上的任何主机名。

我得到非工作的IE8客户端再次下载wpad.dat这样做:

  1. 工具 – > Internet选项 – >高级 – >重置
  2. closuresIE并重新打开它

不幸的是,在对wpad.dat文件进行修改之后,显然IE8在第一次下载wpad.dat之后不会做任何进一步的下载:-(

另外要注意的是在下面的URL中详细说明: https : //technet.microsoft.com/en-au/library/cc995158.aspx

DNS可能会启用阻止列表,其中wpad被定义为阻止logging,这是一种保护措施。

尝试在客户端计算机上运行wireshark …查看IE正在查找的位置? 你的networking服务器日志,它已经服务于任何wpads?

Internet Explorer将尝试访问“ http: //wpad.your-machine's-dns-suffix.com/wpad.dat”。 确保configuration为服务wpad.dat文件的Web服务器正在回答完全限定的主机名。 (顺便说一句,IE浏览器会分解DNS后缀,尝试每个父域,看看http://wpad.com 。拥有该域名的家伙可能是真的,真的很坏,如果他想。 。)

IE版本6.0.2900.xxxx寻找文件名“wpad.da”而不是“wpad.dat”请小心! ;)只需使用嗅探器或检查您的networking服务器日志。

希望这可以帮助!

正如Tom Newtonbuild议运行wireshark以查看IE正在做什么(DNS查询,HTTP GET,…),还请查看您的Web服务器日志。
请注意IE在GET查询中将IP而不是主机名(wpad)作为“主机”发送,以便您不能在Web服务器上使用虚拟主机“wpad”。

这个方法适用于我

  1. Tools->Internet Options->Advanced->Reset 2. Closed IE and re-opened it 

我觉得IE8让我迷惑了很多,他们来自MS,但为什么它工作不正常。 虽然火狐工作得很好。

如果你使用DHCP,那么有一个设置(选项252,IIRC),用于声明你的wpad文件的位置。 我相信你是不正确的Firefox不能使用这个。

另外,你在search列表中是否有localdomain?