次の方法で共有


HTTP メタデータ交換での汎用ホストとクライアントの使用

クライアントとホストがメタデータを交換できない場合は、問題のトラブルシューティングに役立つ汎用ホストとクライアントをカスタムのホストとクライアントに置き換えることができます。 デバイス アドレスまたはデバイス メタデータが WSD デバッグ クライアントの出力に表示されない場合は、指定されたトランスポート アドレスまたはネットワーク環境でエラーが発生している可能性があります。 汎用ホストとクライアントの詳細については、「デバッグ ツール」を参照してください。

汎用ホストとクライアントが WS-Discovery と HTTP メタデータ交換の両方を完了できることが確認されている場合は、この診断手順をスキップできます。トラブルシューティングは、「WinHTTP ログを使用したトラフィックの確認」の手順に従って続行できます。

ホストまたはクライアントが PC で実行されているアプリケーションの場合、汎用ホストまたはクライアントは、実際のホストまたはクライアントと同じセキュリティ コンテキストで実行する必要があります。 たとえば、実際のホストまたはクライアントが管理者として実行されている場合、汎用ホストまたはクライアントでも管理者として実行する必要があります。 また、ホストまたはクライアントがスタンドアロン デバイスである場合は、無制限のネットワーク アクセスを保証するセキュリティ コンテキスト (たとえば、管理者として実行するなど) で汎用ホストまたはクライアントを実行している PC に、完全に置き換える必要があります。

汎用ホストとクライアントを使用して HTTP メタデータ交換のトラブルシューティングを行う方法

  1. コマンド プロンプト ウィンドウを開きます。

  2. 次のコマンドを実行します。WSDDebug_host.exe /mode metadata /start

    Note

    [Windows セキュリティ アラート] ダイアログ ボックスが表示される場合があります。 その場合は、[ブロックを解除] をクリックして、WSD デバッグ ホストの実行を許可します。

     

    このコマンドにより、次のような出力が生成されます。 デバイス ID を記録しておきます。

    WSDAPI Debug Host
    Copyright (C) Microsoft Corporation 2007.  All rights reserved.
    Device ID is urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
    Host metadata>
    
  3. 次のコマンドを実行します。WSDDebug_client.exe /mode metadata /hello off /resolve <id> <id> を手順 2 で識別されたデバイス ID に置き換えます。

    Note

    [Windows セキュリティ アラート] ダイアログ ボックスが表示される場合があります。 その場合は、[ブロックを解除] をクリックして、WSD デバッグ クライアントの実行を許可します。

     

WSD デバッグ クライアントでは、次のような出力が生成されます。

WSDAPI Debug Client
Copyright (C) Microsoft Corporation 2007.  All rights reserved.
Client ID is urn:uuid:0f571af7-6b0e-4daf-8054-f2233ac27910
Hello mode is disabled
Client metadata>
*****************************************************************************
Add at 02/28/07 15:16:51
+ EPR:
  + Address:                 urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Types:
    (wsdp) https://schemas.xmlsoap.org/ws/2006/02/devprof:Device
+ XAddrs:
  https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Metadata version:          2
+ Instance ID:               1
+ Probe/Resolve tag:         WSDAPI debug_client
+ Remote transport address:  [::1]:3702
+ Local transport address:   ::1
+ Local interface GUID:      42133cd4-6a70-11db-bbc9-806e6f6e6963
Client metadata>
*****************************************************************************
Getting metadata for host at 02/28/07 15:16:51:
+ Endpoint reference:
  + Address:
    urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
Client metadata>
*****************************************************************************
Metadata for host:
+ Endpoint reference:
  + Address:           urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisDevice
  + Friendly name:
    [no lang]: Debugging Host
  + Firmware version:  1.0
  + Serial number:     00000000
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisModel
  + Manufacturer:
    [no lang]: Microsoft Corporation
  + Manufacturer URL:  https://www.microsoft.com/
  + Model names:
    [no lang]: Microsoft Debugging Host
  + Model number:      https://www.microsoft.com/
End of metadata
Client metadata>

WSD デバッグ クライアントは、多数の DPWS デバイスを持つネットワーク上で多くの出力を生成する場合があります。 出力をファイルにリダイレクトすることで、分析を容易にできます。 出力をファイルにリダイレクトするには、WSD デバッグ クライアント プロンプトで、「log tee <ファイル名>」と入力します。 出力のリダイレクトを停止するには、WSD デバッグ クライアント プロンプトで「log tee stop」と入力します。

エンドポイント参照 (EPR) アドレスを書き留めます。 この EPR アドレスは、上記の手順 2 で識別したデバイス ID と一致する必要があります。 また、WSD デバッグ クライアントがデバイスのメタデータを完全に出力したことを確認します。 デバイス メタデータは Metadata for host で始まり、End of metadata で終了します。

WSD デバッグ クライアントの出力にデバイス ID とデバイス メタデータが正しく表示される場合、アプリケーション エラーが、指定されたトランスポート アドレス、オペレーティング システム、またはネットワーク環境に関連していない可能性が高くなります。 汎用ホストとクライアントをカスタム ホストとクライアントに置き換えて、「WinHTTP ログを使用したトラフィックの確認」の手順に従ってトラブルシューティングを続行してください。。

WSD デバッグ クライアントの出力にデバイス アドレスとデバイス メタデータが表示されない場合、エラーの原因として次の 1 つ以上が考えられます。

  • ホストによってアドバタイズされたトランスポート アドレスが正しくないか、形式に誤りがあります。 WSD デバッグ クライアントは、ProbeMatches または ResolveMatches メッセージの XAddrs 要素に指定された URL からデバイス メタデータの取得を試みます。 メタデータ交換に使用される URL は、WSD デバッグ クライアントの出力に表示され、Using xAddr という語句のプレフィックスが付けられます。 次のサンプルは、上記の WSD デバッグ クライアント出力のメタデータの交換に使用される XAddrs を示しています。

    Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
    

    指定された XAddrs が XAddr 検証規則に準拠していない場合、WSD デバッグ クライアントはデバイスのメタデータを取得できません。

  • アプリケーションが間違ったセキュリティ コンテキストで実行されています。 アプリケーションが正しい資格情報を使用していること、およびクライアントとホストがネットワークにアクセスするための十分なアクセス許可を持っていることを確認します。

  • ファイアウォールの構成が間違っています。 「アダプターとファイアウォールの設定の検査」の指示に従って、Windows ファイアウォールの設定が正しいこと、およびパケット ドロップにつながる他の規則がないことを確認します。 クライアントとホストは、障害の再現を試みるために、「手付かずの状態の」コンピューター (ドメインに参加したことがない既定のオペレーティング システムがインストールされているコンピューター) にコピーすることもできます。

  • IPSec ポリシーがアプリケーションをブロックしています。 IPSec ポリシーの対象ではないコンピューターにクライアントとホストをコピーし、エラーの再現を試みます。

WSDAPI 診断手順

WSDAPI のトラブルシューティングを開始する