實作多宿主 WSD 裝置

WS-DiscoveryWeb Services 的裝置設定檔 (DPWS) 不會描述多宿主裝置的實作。 本主題描述 WSDAPI 中的多宿主裝置支援,並提供用戶端和裝置開發人員的實作建議。 在本主題中,假設探索訊息會透過 IPv4 和 IPv6 (傳送,如果可用的) 具有相同訊息識別碼和應用程式排序資訊。

在多主控環境中探索

其他WS-Discovery功能的Hello 和XAddrs一節所述,WSDAPI 永遠不會在 Hello 訊息中提供 XAddrs。 這表示相同的 Hello 訊息可以在具有相同訊息識別碼和應用程式排序資訊的所有網路介面上傳送。 這可讓用戶端衝突偵測更容易在用戶端和裝置共用多個子網時,捨棄來自相同裝置的多個 Hello 訊息。

因為 XAddrs 不會在 Hello 訊息中傳送,所以用戶端實作必須傳送 Resolve 訊息以取得相關的裝置位址。 [解析] 應該在具有相同訊息識別碼的所有用戶端介面上傳送,而且裝置應該視需要篩選重複的訊息。 針對解析訊息使用相同的訊息識別碼,可讓裝置在必要時挑選慣用的介面來與用戶端通訊。

傳送 ResolveMatch 訊息時,裝置應該會提供 XAddrs ,與它用來單播訊息的網路介面相關。 此做法有助於避免多個用戶端連線嘗試和複雜的重試邏輯。

多主控環境中的中繼資料交換

在多主控環境中實作中繼資料交換比實作中繼資料版本設定更困難。 如果用戶端透過多個介面要求中繼資料,則用戶端可以透過不同的介面接收多個 GetResponse 訊息。 這些 GetResponse 訊息可以包含具有相同中繼資料版本的不同 關聯 性中繼資料區段。 這會減少中繼資料版本號碼的值。

有一種替代方法,其中會傳送單一 GetResponse 訊息,以回應服務的所有位址。 此方法的缺點是可能會揭露私人資訊,例如間接存取網路的拓撲。

在 Windows Vista 上,WSDAPI 提供的中繼資料只包含對接收中繼資料要求之介面有效的位址。