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