使用一般主機和客戶端進行 HTTP 元數據交換
如果用戶端和主機無法交換元數據,則可以將一般主機和用戶端取代為自定義主機和用戶端,以協助針對問題進行疑難解答。 如果裝置位址或裝置元數據未出現在WSD偵錯客戶端輸出中,則提供的傳輸位址或網路環境可能會造成失敗。 如需泛型主機和用戶端的詳細資訊,請參閱 偵錯工具。
如果已確認泛型主機和用戶端可以同時完成 WS-Discovery 和 HTTP 元數據交換,則可以略過此診斷程式,並遵循使用 WinHTTP 記錄驗證取得流量中的程式繼續進行疑難解答。
如果主機或用戶端是計算機上執行的應用程式,則一般主機或客戶端應該在與實際主機或用戶端相同的安全性內容中執行。 例如,如果實際主機或用戶端以系統管理員身分執行,則泛型主機或客戶端必須以系統管理員身分執行。 此外,如果主機或客戶端是獨立裝置,它應該完全由在安全性內容中執行一般主機或客戶端的電腦完全取代,以確保無限制的網路存取(例如,以系統管理員身分執行)。
若要使用一般主機和客戶端對 HTTP 元數據交換進行疑難解答
開啟 [命令提示字元] 視窗。
執行下列命令: WSDDebug_host.exe /mode 元數據 /start
注意
[Windows 安全性 警示] 對話框可能會出現。 如果是,請按兩下 [ 解除封鎖 ] 以允許 WSD 偵錯主機執行。
此命令會產生類似下列的輸出。 記下裝置標識碼。
WSDAPI Debug Host Copyright (C) Microsoft Corporation 2007. All rights reserved. Device ID is urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366 Host metadata>
執行下列命令:WSDDebug_client.exe /mode 元數據 /hello off /resolve< id。> 將標識碼>取代<為步驟 2 中所識別的裝置識別碼。
注意
[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>
*****************************************************************************
Getting metadata for host at 02/28/07 15:16:51:
+ Endpoint reference:
+ Address:
urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
Client metadata>
*****************************************************************************
Metadata for host:
+ Endpoint reference:
+ Address: urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Metadata section:
+ Dialect:
https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisDevice
+ Friendly name:
[no lang]: Debugging Host
+ Firmware version: 1.0
+ Serial number: 00000000
Metadata section:
+ Dialect:
https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisModel
+ Manufacturer:
[no lang]: Microsoft Corporation
+ Manufacturer URL: https://www.microsoft.com/
+ Model names:
[no lang]: Microsoft Debugging Host
+ Model number: https://www.microsoft.com/
End of metadata
Client metadata>
WSD 偵錯用戶端可能會在網路上產生許多 DPWS 裝置的輸出。 輸出可以重新導向至檔案,以方便分析。 在 WSD 偵錯用戶端提示字元中輸入記錄檔<名>,以將輸出重新導向至檔案。 您可以在 WSD 偵錯用戶端提示字元輸入 記錄檔發條停止 ,以停止輸出重新導向。
記下端點參考 (EPR) 位址。 此 EPR 位址應該符合上述步驟 2 中所識別的裝置識別碼。 此外,請確認 WSD 偵錯用戶端已完整列印裝置的元數據。 裝置元數據的開頭為 Metadata for host
,並以 結尾 End of metadata
。
如果裝置識別碼和裝置元數據在 WSD 偵錯客戶端輸出中正確出現,則應用程式失敗可能與提供的傳輸位址、操作系統或網路環境無關。 使用自定義主機和用戶端取代泛型主機和用戶端,並遵循使用 WinHTTP 記錄來驗證取得流量中的程式,繼續進行疑難解答。
如果裝置位址和裝置元數據未出現在WSD偵錯客戶端輸出中,則失敗可能會有下列一或多個原因:
主機所公告的傳輸位址不正確或格式不正確。 WSD 偵錯用戶端會嘗試從 ProbeMatches 或 ResolveMatches 訊息的 XAddrs 元素中提供的 URL 取得裝置元數據。 用於元件資料交換的網址會出現在 WSD 偵錯客戶端輸出中,前面加上片語
Using xAddr
。 下列範例顯示上述 WSD 偵錯客戶端輸出中用於元數據交換的 XAddrs。Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
如果提供的 XAddrs 不符合 XAddr 驗證規則,則 WSD 偵錯客戶端無法取得裝置的元數據。
應用程式正在錯誤的安全性內容中執行。 確認應用程式使用正確的認證,且用戶端和主機有足夠的許可權可存取網路。
防火牆設定錯誤。 依照檢查配接器和防火牆設定中的指示,確認 Windows 防火牆設定正確無誤,而且沒有其他規則卸除封包。 用戶端和主機也可以複製到「原始」機器上(一部具有從未加入網域的預設操作系統安裝),以嘗試重現失敗。
IPSec 原則封鎖應用程式。 將用戶端和主機複製到不受IPSec原則約束的電腦,並嘗試重現失敗。
相關主題