【问题标题】:WPAD queries calling webservice from ASP.NETWPAD 查询从 ASP.NET 调用 web 服务
【发布时间】:2021-01-07 20:18:20
【问题描述】:

我们有一个调用 web 服务的 ASP.NET 网站。如果 ASP.NET 网站没有启用模拟,则对 Web 服务的调用很慢 - 使用 WireShark 我们可以看到它正在进行 WPAD 查询。

如果模拟已打开并且它正在模拟管理员用户,则对 Web 服务的调用速度很快 - 使用 WireShark 我们不会进行 WPAD 查询。

有人见过吗?我们如何防止 NetworkService(默认情况下是 ASP.NET 网站使用的)不进行 WPAD 查询。

为什么冒充管理员用户不会引起 WPAD 查询?

这是我们在 WireShark 中看到的入口:

NBNS名称查询NB WPAD

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我遇到了完全相同的问题。

    WPAD 代表 Web 代理自动发现。

    可以在 Wikipedia 上找到有关该协议的详细信息。

    当您在 Internet Explorer->工具->Internet 选项->连接->LAN 设置中选中“自动检测设置”时,机器将始终使用 WPAD 协议在网络中查询自动检测代理,然后再进行任何网络连接。

    即使设置在 IE 中,它也适用于整台机器,因此适用于任何试图从该机器连接到 Web 服务的客户端。这也是IE中的默认设置。

    启用 WPAD 后,在进行任何 Web 连接时,客户端计算机将查询您的 DNS 和 WINS 服务器以查找自动代理,并且还会发出一系列请求自动代理的广播。

    在收到响应或某个超时期限(据我所知超时是任意的 - 也许精通 WPAD 的人可以提供答案?)过去之前,连接不会建立。

    您在 Wireshark 中看到的“NBNS 名称查询 NB WPAD”消息是客户端向 WINS 服务器查询自动代理。如果您没有看到这些数据包正在发送到的服务器的回复,那么您的网络设置有问题。服务器应该回复没有自动代理或自动代理服务器的详细信息。

    我们遇到的问题是 Windows Server 2008 DNS 服务器默认配置为忽略 WPAD 请求(即它们根本不响应) - 这就是我们作为 DNS/WINS 服务器运行的。我们没有运行自动代理,因此 Windows Server 2008 DNS 服务器应该回答“否”。既然没有,我们的客户端会在 30 秒左右的时间内徒劳地进行查询,然后才放弃并建立初始连接。

    好消息是这个问题有三种解决方案:

    1. 在任何用作 Web 服务客户端的机器上关闭 IE 中的“自动检测设置”

    2. 编辑 web 服务客户端应用的 machine.config 或 app.config 以绕过本地代理设置。您可以在此处找到有关如何执行此操作的信息:

    http://support.microsoft.com/kb/968699

    1. 确保您的网络 DNS 服务器已配置为正确响应 WPAD 请求。

    最后,这里有一个关于 WPAD 的信息的链接,我在自己调试此问题时发现这些信息非常有用:

    http://www.isaserver.org/articles/ISA2004_ClientAutoConfig.html

    希望这会有所帮助!

    【讨论】:

    • 非常感谢您如此彻底地回答这个问题。你刚刚拯救了我的一周!
    猜你喜欢
    • 2023-03-12
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多