使用通用主机和客户端进行 UDP WS-Discovery

如果客户端和主机在网络上看不到对方,则可以将通用主机和客户端替换为自定义主机和客户端,以帮助解决问题。 如果设备地址未出现在 WSD 调试客户端输出中,则可能是网络环境导致了故障。 有关通用主机和客户端的详细信息,请参阅调试工具

如果主机或客户端是在 PC 上运行的应用程序,则通用主机或客户端应在与实际主机或客户端相同的安全上下文中运行。 例如,如果实际主机或客户端以管理员身份运行,则通用主机或客户端必须以管理员身份执行。 此外,如果主机或客户端是独立设备,则应将其完全替换为运行通用主机或客户端的 PC。

使用通用主机和客户端对 UDP WS-Discovery 进行故障排除

  1. 打开命令提示符窗口。

  2. 运行以下命令:WSDDebug_host.exe /mode metadata /start

    注意

    可能会出现 Windows 安全警报对话框。 如果是这样,请单击取消阻止以允许 WSD 调试主机运行。

     

    该命令生成的输出如下所示。 记下“设备 ID”。

    WSDAPI Debug Host
    Copyright (C) Microsoft Corporation 2007.  All rights reserved.
    Device ID is urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
    Host metadata>
    
  3. 运行以下命令:WSDDebug_client.exe /mode metadata /hello off /resolve <id>。 将 <id> 替换为步骤 2 中标识的设备 ID。

    注意

    可能会出现 Windows 安全警报对话框。 如果是这样,请单击取消阻止以允许 WSD 调试客户端运行。

     

WSD 调试客户端生成类似于以下内容的输出。

WSDAPI Debug Client
Copyright (C) Microsoft Corporation 2007.  All rights reserved.
Client ID is urn:uuid:0f571af7-6b0e-4daf-8054-f2233ac27910
Hello mode is disabled
Client metadata>
*****************************************************************************
Add at 02/28/07 15:16:51
+ EPR:
  + Address:                 urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Types:
    (wsdp) https://schemas.xmlsoap.org/ws/2006/02/devprof:Device
+ XAddrs:
  https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Metadata version:          2
+ Instance ID:               1
+ Probe/Resolve tag:         WSDAPI debug_client
+ Remote transport address:  [::1]:3702
+ Local transport address:   ::1
+ Local interface GUID:      42133cd4-6a70-11db-bbc9-806e6f6e6963
Client metadata>

WSD 调试客户端可能会在具有许多 DPWS 设备的网络上生成大量输出。 输出可以重定向到一个文件,以便于分析。 在 WSD 调试客户端提示符处键入 log tee <filename>,将输出重定向到文件。 在 WSD 调试客户端提示符处键入 log tee stop 可以停止输出重定向。

记下终结点参考 (EPR) 地址。 此 EPR 地址应与上述步骤 2 中标识的设备 ID 匹配。 如果是这样的话,那么应用程序故障可能与操作系统或网络环境无关。 将通用主机和客户端替换为自定义主机和客户端,并按照使用 WSD 调试客户端验证多播流量中的过程继续进行故障排除。

如果设备 ID 与 EPR 地址不匹配,则应用程序故障可能与操作系统或网络环境有关。 故障可能有以下一个或多个原因:

  • 应用程序在错误的安全上下文中运行。 验证应用程序是否使用正确的凭据,以及客户端和主机是否有足够的权限访问网络。
  • 防火墙配置错误。 按照检查适配器和防火墙设置中的说明,验证 Windows 防火墙设置是否正确,以及是否没有其他规则丢弃数据包。 客户端和主机也可以复制到“原始”计算机(一台具有从未加入域的默认操作系统安装的计算机),以尝试重现故障。
  • IPSec 策略阻止应用程序。 将客户端和主机复制到不受 IPSec 策略约束的计算机上,并尝试重现故障。

WSDAPI 诊断过程

WSDAPI 故障排除入门