将通用主机和客户端用于 UDP WS-Discovery

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

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

使用通用主机和客户端对 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 故障排除入门