次の方法で共有


その他の WSDAPI アプリケーションのトラブルシューティング

アプリケーションは WSDAPI インターフェイスと関数を直接呼び出して、デバイスの検出とメタデータ交換を実行できます。 これらのアプリケーションで使用されるメッセージ パターンは異なります。

このトラブルシューティング ガイドの目的は、WSDAPI アプリケーション開発者がデバイス プロキシを正常に実装できるようにすることです。 このガイドは、WSDAPI のすべての側面のトラブルシューティングに役立つものではありません。 デバイス プロキシが正常に作成され、クライアントとホストがネットワーク上で相互に表示できる場合、このガイドではアプリケーションの問題に対処できません。 これらのアプリケーションの問題をトラブルシューティングするには、「WSDAPI トレース の有効化 の手順に従って、Microsoft サポートにお問い合わせください。

WSDCreateDeviceProxy を呼び出すクライアントのトラブルシューティング

アプリケーション WSDCreateDeviceProxy を呼び出して、IWSDDeviceProxy インターフェイスのインスタンスを作成および初期化します。 このデバイス プロキシ オブジェクトは、デバイス上のサービスをアドバタイズしたり、メタデータを交換したりするために使用できます。

WSDCreateDeviceProxy呼び出すアプリケーションでは、常に次のメッセージが使用されます。

アプリケーション WSDCreateDeviceProxy を呼び出す際に、次のメッセージが使用されることがあります。

ResolveResolveMatches メッセージは、urn:uuid:{guid} 形式の論理デバイスアドレスが pszDeviceIdに渡されたときに生成されます。 これらのメッセージは、物理デバイス アドレスが pszDeviceId 渡されるときに生成されません。 Resolve メッセージと ResolveMatches メッセージを使用している場合、それらは Get メッセージと GetResponse メッセージの前に送信されます。

次の診断手順は、物理デバイス アドレスを使用して WSDCreateDeviceProxyを呼び出すアプリケーション問題を特定するために使用する必要があります。

  1. アダプターとファイアウォールの設定を検査します。
  2. HTTP メタデータ交換に汎用ホストとクライアントを使用します。
  3. WinHTTP ログを使用して、Get トラフィックを確認します
  4. HTTP メタデータ交換のネットワーク トレースを検査します。

アプリケーション が論理デバイス アドレスを使用して WSDCreateDeviceProxy を呼び出す際の問題を特定するために、次の診断手順を順番に使用する必要があります。

  1. アダプターとファイアウォールの設定を検査します。
  2. UDP WS-Discoveryに汎用ホストとクライアントを使用します。
  3. WSD デバッグ クライアントを使用してマルチキャスト トラフィックのを確認します。
  4. UDP WS-Discoveryのネットワーク トレースを検査します。
  5. HTTP メタデータ交換に汎用ホストとクライアントを使用します。
  6. WinHTTP ログを使用して Get traffic を検証します
  7. HTTP メタデータ交換のネットワーク トレースを検査します。

ResolveResolveMatches メッセージが生成され、トラフィック要件を満たしていることを確認します。 WSD デバッグ クライアント出力またはネットワーク トレースで、Probe または ProbeMatches メッセージを検索する必要はありません。

WSDCreateDeviceProxyAdvanced を呼び出すクライアントのトラブルシューティング

アプリケーション WSDCreateDeviceProxyAdvanced を呼び出して、IWSDDeviceProxy インターフェイスのインスタンスを作成および初期化します。 WSDCreateDeviceProxyとは異なり、WSDCreateDeviceProxyAdvanced には、デバイス トランスポート アドレスの定義に使用される pDeviceAddress パラメーターがあります。 このトランスポート アドレスが指定されている場合、論理アドレス解決は必要なく、解決 と ResolveMatches メッセージは生成されません。

pDeviceAddressNULL に設定されており、pszDeviceId が論理アドレスの場合は、アドレス解決が必要であり、Resolve メッセージと ResolveMatches メッセージが生成されます。

次の診断手順を順番通りに使用して、WSDCreateDeviceProxyAdvanced が非NULLpDeviceAddress パラメーターを伴って呼び出される際のアプリケーションの問題を特定するのに役立てる必要があります。 これらのプロシージャは、pDeviceAddress が NULL 、pszDeviceId が物理アドレス 場合にも使用できます。

  1. アダプターとファイアウォールの設定を検査します。
  2. HTTP メタデータ交換に汎用ホストとクライアントを使用します。
  3. WinHTTP ログを使用して、のGETトラフィックを確認します。
  4. HTTP メタデータ交換のネットワーク トレースを検査します。

アプリケーションが WSDCreateDeviceProxyAdvanced を呼び出す際に、pDeviceAddressNULL に設定され、pszDeviceId が論理アドレスに設定されている問題を特定するために、次の診断手順を(順番に)使用する必要があります。

  1. アダプターとファイアウォールの設定を検査します。
  2. UDP WS-Discoveryに汎用ホストとクライアントを使用します。
  3. WSD デバッグ クライアントを使用してマルチキャスト トラフィックのを確認します。
  4. UDP WS-Discoveryのネットワーク トレースを検査します。
  5. HTTP メタデータ交換に汎用ホストとクライアントを使用します。
  6. WinHTTP ログを使用して GET トラフィックを確認する。
  7. HTTP メタデータ交換のネットワーク トレースを検査します。

ResolveResolveMatches メッセージが生成され、トラフィック要件を満たしていることを確認します。 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 によって生成されたメッセージがトラフィック要件を満たすことを確認します。

  1. アダプターとファイアウォールの設定を検査します。
  2. UDP WS-Discoveryに汎用ホストとクライアントを使用します。
  3. WSD デバッグ クライアントを使用してマルチキャスト トラフィックのを確認します。
  4. UDP WS-Discoveryのネットワーク トレースを検査します。

アプリケーションが IWSDiscoveryProvider::SearchByAddress呼び出した場合、それはダイレクト探索アプリケーションです。 トラブルシューティングの詳細については、「ダイレクト検出を使用したアプリケーションのトラブルシューティング」を参照してください。

WSDAPI のトラブルシューティングを始めるには