針對其他 WSDAPI 應用程式進行疑難排解

應用程式可以直接呼叫 WSDAPI 介面和函式,以執行裝置探索和中繼資料交換。 這些應用程式所使用的訊息模式會有所不同。

此疑難排解指南的目標是協助 WSDAPI 應用程式開發人員成功實作裝置 Proxy。 本指南並非用來協助針對 WSDAPI 的所有層面進行疑難排解。 如果已成功建立裝置 Proxy,且用戶端和主機可以在網路上彼此查看,則本指南無法解決應用程式的問題。 若要針對這些應用程式問題進行疑難排解,請遵循 啟用 WSDAPI 追蹤 中的指示,並連絡 Microsoft 支援服務以取得進一步的協助。

針對呼叫 WSDCreateDeviceProxy 的用戶端進行疑難排解

應用程式會呼叫 WSDCreateDeviceProxy 來建立和初始化 IWSDDeviceProxy 介面的實例。 此裝置 Proxy 物件可用來公告裝置上的服務,以及交換中繼資料。

呼叫 WSDCreateDeviceProxy 的應用程式一律會使用下列訊息。

呼叫 WSDCreateDeviceProxy 的應用程式有時會使用下列訊息。

解析ResolveMatches 訊息會在邏輯裝置位址 (產生,也就是將 urn:uuid:{guid ) }格式的裝置位址傳遞至 pszDeviceId。 當實體裝置位址傳遞至 pszDeviceId時,不會產生這些訊息。 使用 Resolve 和 ResolveMatches 訊息時,會在 GetGetResponse 訊息之前傳送這些訊息。

下列診斷程式應該使用 (,以便) 協助識別呼叫 WSDCreateDeviceProxy 且具有實體裝置位址的應用程式發生問題。

  1. 檢查配接器和防火牆設定
  2. 使用一般主機和用戶端進行 HTTP 中繼資料交換
  3. 使用 WinHTTP 記錄來驗證取得流量
  4. 檢查 HTTP 中繼資料交換的網路追蹤

下列診斷程式應該使用 (,以便) 協助識別呼叫 WSDCreateDeviceProxy 的應用程式與邏輯裝置位址的問題。

  1. 檢查配接器和防火牆設定
  2. 使用 UDP WS-Discovery 的一般主機和用戶端
  3. 使用 WSD 偵錯用戶端來驗證多播流量
  4. 檢查 UDP WS-Discovery 的網路追蹤
  5. 使用一般主機和用戶端進行 HTTP 中繼資料交換
  6. 使用 WinHTTP 記錄來驗證取得流量
  7. 檢查 HTTP 中繼資料交換的網路追蹤

確認已產生 ResolveResolveMatches 訊息,並符合流量需求。 不需要在 WSD 偵錯用戶端輸出或網路追蹤中尋找 探查ProbeMatches 訊息。

針對呼叫 WSDCreateDeviceProxyAdvanced 的用戶端進行疑難排解

應用程式會呼叫 WSDCreateDeviceProxyAdvanced 來建立和初始化 IWSDDeviceProxy 介面的實例。 不同于 WSDCreateDeviceProxyWSDCreateDeviceProxyAdvanced 具有 pDeviceAddress 參數,用來定義裝置傳輸位址。 如果指定此傳輸位址,則不需要邏輯位址解析,而且不會產生 ResolveResolveMatches 訊息。

如果 pDeviceAddress 設定為 Null ,而 pszDeviceId 是邏輯位址,則需要位址解析,並產生 ResolveResolveMatches 訊息。

下列診斷程式應該使用 (,以便) 協助識別呼叫 WSDCreateDeviceProxyAdvanced 的應用程式與非NullpDeviceAddress 參數的問題。 當 pDeviceAddressNullpszDeviceId 是實體位址時,也可以使用這些程式。

  1. 檢查配接器和防火牆設定
  2. 使用一般主機和用戶端進行 HTTP 中繼資料交換
  3. 使用 WinHTTP 記錄來驗證取得流量
  4. 檢查 HTTP 中繼資料交換的網路追蹤

下列診斷程式應該使用 (,以便) 協助識別呼叫 WSDCreateDeviceProxyAdvancedpDeviceAddress 設為 NullpszDeviceId 設定為邏輯位址的應用程式發生問題。

  1. 檢查配接器和防火牆設定
  2. 使用 UDP WS-Discovery 的一般主機和用戶端
  3. 使用 WSD 偵錯用戶端來驗證多播流量
  4. 檢查 UDP WS-Discovery 的網路追蹤
  5. 使用一般主機和用戶端進行 HTTP 中繼資料交換
  6. 使用 WinHTTP 記錄來驗證取得流量
  7. 檢查 HTTP 中繼資料交換的網路追蹤

確認已產生 ResolveResolveMatches 訊息,並符合流量需求。 不需要在 WSD 偵錯用戶端輸出或網路追蹤中尋找 探查ProbeMatches 訊息。

使用 IWSDiscoveryProvider 介面對用戶端進行疑難排解

呼叫 IWSDiscoveryProvider 介面的應用程式不會執行中繼資料交換。 此介面僅用於探索。 在 IWSDiscoveryProvider 介面上呼叫的每個方法,訊息模式和疑難排解程式都不同。

當應用程式呼叫 IWSDiscoveryProvider::SearchByType時,會產生 探查 訊息。 探查訊息是由 UDP 多播傳送至埠 3702。 在回應中會產生 ProbeMatches 訊息。 ProbeMatches 訊息會由 UDP 單播傳送,而且來自埠 3702。

當應用程式呼叫 IWSDiscoveryProvider::SearchById時,會產生 Resolve 訊息。 解析訊息是由 UDP 多播傳送至埠 3702。 ResolveMatches訊息會在回應中產生。 ResolveMatches 是由 UDP 單播傳送,且源自埠 3702。

下列診斷程式應該 (,以便) 協助識別呼叫 IWSDiscoveryProvider::SearchByTypeIWSDiscoveryProvider::SearchById的應用程式問題。 確認所呼叫 API 所產生的訊息符合流量需求。

  1. 檢查配接器和防火牆設定
  2. 使用 UDP WS-Discovery 的一般主機和用戶端
  3. 使用 WSD 偵錯用戶端來驗證多播流量
  4. 檢查 UDP WS-Discovery 的網路追蹤

如果應用程式呼叫 IWSDiscoveryProvider::SearchByAddress,則它是導向的探索應用程式。 如需詳細資訊,請參閱 使用導向探索對應用程式進行疑難排解

使用 WSDAPI 疑難排解消費者入門