その他の WSDAPI アプリケーションのトラブルシューティング
アプリケーションは WSDAPI インターフェイスと関数を直接呼び出して、デバイスの検出とメタデータ交換を実行できます。 これらのアプリケーションで使用されるメッセージ パターンは異なります。
このトラブルシューティング ガイドの目的は、WSDAPI アプリケーション開発者がデバイス プロキシを正常に実装できるようにすることです。 このガイドは、WSDAPI のすべての側面のトラブルシューティングに役立つものではありません。 デバイス プロキシが正常に作成され、クライアントとホストがネットワーク上で相互に表示できる場合、このガイドではアプリケーションの問題に対処できません。 これらのアプリケーションの問題をトラブルシューティングするには、「 WSDAPI トレースの有効化 」の手順に従い、Microsoft サポートに問い合わせてください。
WSDCreateDeviceProxy を呼び出すクライアントのトラブルシューティング
アプリケーションは WSDCreateDeviceProxy を呼び出して、 IWSDDeviceProxy インターフェイスのインスタンスを作成および初期化します。 このデバイス プロキシ オブジェクトは、デバイス上のサービスをアドバタイズしたり、メタデータを交換したりするために使用できます。
WSDCreateDeviceProxy を呼び出すアプリケーションでは、常に次のメッセージが使用されます。
WSDCreateDeviceProxy を呼び出すアプリケーションでは、次のメッセージが使用される場合があります。
Resolve メッセージと ResolveMatches メッセージは、論理デバイス アドレス (つまり urn:uuid:{guid}という形式のデバイス アドレス) が pszDeviceId に渡されたときに生成されます。 これらのメッセージは、物理デバイス アドレスが pszDeviceId に渡されるときに生成されません。 Resolve メッセージと ResolveMatches メッセージを使用すると、Get メッセージと GetResponse メッセージの前に送信されます。
物理デバイス アドレスで WSDCreateDeviceProxy を呼び出すアプリケーションの問題を特定するには、次の診断手順を () 使用する必要があります。
- アダプターとファイアウォールの設定を調べます。
- HTTP メタデータ交換には汎用ホストとクライアントを使用します。
- WinHTTP ログを使用して、トラフィックの取得を確認します。
- HTTP メタデータ交換のネットワーク トレースを検査します。
次の診断手順は()、論理デバイス アドレスを使用して WSDCreateDeviceProxy を呼び出すアプリケーションの問題を特定するために使用する必要があります。
- アダプターとファイアウォールの設定を調べます。
- UDP WS-Discovery には汎用ホストとクライアントを使用します。
- WSD デバッグ クライアントを使用してマルチキャスト トラフィックを確認します。
- UDP WS-Discovery のネットワーク トレースを検査します。
- HTTP メタデータ交換には汎用ホストとクライアントを使用します。
- WinHTTP ログを使用して、トラフィックの取得を確認します。
- HTTP メタデータ交換のネットワーク トレースを検査します。
Resolve メッセージと ResolveMatches メッセージが生成され、トラフィック要件を満たしていることを確認します。 WSD デバッグ クライアント出力またはネットワーク トレースで Probe または ProbeMatches メッセージを検索する必要はありません。
WSDCreateDeviceProxyAdvanced を呼び出すクライアントのトラブルシューティング
アプリケーションは WSDCreateDeviceProxyAdvanced を呼び出して、 IWSDDeviceProxy インターフェイスのインスタンスを作成および初期化します。 WSDCreateDeviceProxy とは異なり、WSDCreateDeviceProxyAdvanced には、デバイス トランスポート アドレスを定義するために使用される pDeviceAddress パラメーターがあります。 このトランスポート アドレスが指定されている場合、論理アドレス解決は必要なく、 Resolve メッセージと ResolveMatches メッセージは生成されません。
pDeviceAddress が NULL に設定され、pszDeviceId が論理アドレスである場合は、アドレス解決が必要であり、Resolve メッセージと ResolveMatches メッセージが生成されます。
非 NULLpDeviceAddress パラメーターを使用して WSDCreateDeviceProxyAdvanced を呼び出すアプリケーションの問題を特定するには、次の診断手順を使用する必要があります。 これらのプロシージャは、 pDeviceAddress が NULL で 、pszDeviceId が物理アドレスである場合にも使用できます。
- アダプターとファイアウォールの設定を調べます。
- HTTP メタデータ交換には汎用ホストとクライアントを使用します。
- WinHTTP ログを使用して、トラフィックの取得を確認します。
- HTTP メタデータ交換のネットワーク トレースを検査します。
pDeviceAddress が NULL に設定され、pszDeviceId が論理アドレスに設定されている WSDCreateDeviceProxyAdvanced を呼び出すアプリケーションの問題を特定するには、次の診断手順を使用する必要があります。
- アダプターとファイアウォールの設定を調べます。
- UDP WS-Discovery には汎用ホストとクライアントを使用します。
- WSD デバッグ クライアントを使用してマルチキャスト トラフィックを確認します。
- UDP WS-Discovery のネットワーク トレースを検査します。
- HTTP メタデータ交換には汎用ホストとクライアントを使用します。
- WinHTTP ログを使用して、トラフィックの取得を確認します。
- HTTP メタデータ交換のネットワーク トレースを検査します。
Resolve メッセージと ResolveMatches メッセージが生成され、トラフィック要件を満たしていることを確認します。 WSD デバッグ クライアント出力またはネットワーク トレースで Probe または ProbeMatches メッセージを検索する必要はありません。
IWSDiscoveryProvider インターフェイスを使用したクライアントのトラブルシューティング
IWSDiscoveryProvider インターフェイスを呼び出すアプリケーションは、メタデータ交換を実行しません。 このインターフェイスは、検出にのみ使用されます。 メッセージ パターンとトラブルシューティング手順は、 IWSDiscoveryProvider インターフェイスで呼び出されるメソッドごとに異なります。
アプリケーションが IWSDiscoveryProvider::SearchByType を呼び出すと、 プローブ メッセージが生成されます。 プローブ メッセージは UDP マルチキャストによってポート 3702 に送信されます。 ProbeMatches メッセージが応答で生成されます。 ProbeMatches メッセージは UDP ユニキャストによって送信され、ポート 3702 から送信されます。
アプリケーションが IWSDiscoveryProvider::SearchById を呼び出すと、 解決 メッセージが生成されます。 解決メッセージは UDP マルチキャストによってポート 3702 に送信されます。 ResolveMatches メッセージが応答で生成されます。 ResolveMatches は UDP ユニキャストによって送信され、ポート 3702 から発信されます。
IWSDiscoveryProvider::SearchByType または IWSDiscoveryProvider::SearchById を呼び出すアプリケーションに関する問題を特定するには、次の診断手順を (順番に) 使用する必要があります。 呼び出された API によって生成されたメッセージがトラフィック要件を満たすことを確認します。
- アダプターとファイアウォールの設定を調べます。
- UDP WS-Discovery には汎用ホストとクライアントを使用します。
- WSD デバッグ クライアントを使用してマルチキャスト トラフィックを確認します。
- UDP WS-Discovery のネットワーク トレースを検査します。
アプリケーションが IWSDiscoveryProvider::SearchByAddress を呼び出す場合、それはダイレクト探索アプリケーションです。 トラブルシューティングの詳細については、「 Directed Discovery を使用したアプリケーションのトラブルシューティング」を参照してください。
関連トピック