次の方法で共有


HTTP メタデータ交換のネットワーク トレースの検査

生パケットを表示できる任意のネットワーク パケット アナライザーを使用して、HTTP メタデータ交換要求を検査できます。 Microsoft Network Monitor 3 (Netmon) をお勧めします。 Netmon の詳細については、「 Netmon のダウンロード」および「DPWS フィルターのサンプル」を参照してください。

この診断手順は、メッセージの内容が暗号化されているため、通信にセキュリティで保護されたチャネルを使用するクライアントとホストでは役に立たない場合があります。

HTTP メタデータ交換のネットワーク トレースを検査するには

  1. ネットワーク経由で実行するようにホストとクライアントを構成します (つまり、ホストとクライアントが異なるマシンで動作することを確認します)。

  2. クライアントまたはホストにパケット アナライザー (Netmon) をインストールします。

  3. ホストとクライアントを接続するネットワーク アダプター上のトラフィックをキャプチャするようにパケット アナライザーを構成します。

  4. ホストとクライアントを起動するか、ネットワーク エクスプローラーで F5 キーを押して、エラーを再現します。

  5. 結果をフィルター処理して、WS-Discoveryとメタデータ交換トラフィックを分離します。 Netmon フィルターのサンプルを表示するには、「 Netmon フィルターのダウンロード」と「サンプル DPWS フィルター」を参照してください。

    Note

    この手順は省略可能です。

     

  6. クライアントとホストの間で送信されるメッセージが、基本的なトラフィック要件を満たしていることを確認します。

メッセージがトラフィック要件を満たしていることを確認する

WSDAPI クライアントとホストは、次の条件に準拠するメッセージを送信する必要があります。 メッセージ パターンの一般的な情報については、「 検出とメタデータ Exchange メッセージ パターン」を参照してください。

  • メッセージは、WS-Discoveryがメタデータ交換に使用されていないことが確実でない限り、 UDP WS-Discovery のネットワーク トレースの検査に関するトピックに記載されているトラフィック要件を満たす必要があります。

  • クライアントと ProbeMatches または ResolveMatches メッセージの XAddrs 要素で提供される最初のトランスポート アドレスとの間に TCP 接続を確立する必要があります。 次の一覧は、TCP 接続の確立に使用される一般的なパケット交換を示しています。

    • クライアントは、指定されたポートでホストに TCP SYN パケットを送信します。
    • ホストは TCP SYN/ACK パケットをクライアントに送信します。
    • クライアントは、指定されたポートでホストに TCP ACK パケットを送信します。

    クライアントが TCP ACK パケットを送信すると、TCP 接続が確立されます。 TCP 接続が以前に確立されている場合、このメッセージ交換は発生しないことに注意してください。

  • クライアントは、有効な GET HTTP 要求とメッセージを送信する必要があります。

  • ホストは、 HTTP の取得 要求で指定された URL パスでリッスンしている必要があります。

  • Get メタデータ メッセージの To 要素は、空ではなく存在する必要があります。 To 要素の値は、ホストのエンドポイント アドレスのいずれかと一致する必要があります。 ホストのエンドポイント アドレスは、通常、 ProbeMatches または ResolveMatches メッセージでアドバタイズされます。

  • ホストは、有効な HTTP 応答ヘッダーを送信する必要があります。 最初の要求が成功した場合、応答ヘッダーには HTTP/1.1 200 状態コードが含まれている必要があります。

  • ホストは、有効な GetResponse メッセージを送信する必要があります。

  • GetResponse メッセージの RelatesTo 要素は存在する必要があり、空にすることはできません。 その値は、対応する Get メッセージの MessageId 要素の値と一致する必要があります。

プログラムによって送信された HTTP 要求またはメタデータ交換メッセージがこれらのトラフィック要件に準拠していない場合は、問題の原因が正常に特定され、それ以上のトラブルシューティング手順は必要ありません。 プログラムを書き直して、準拠したメッセージと要求を生成し、プログラムを再テストします。

それでも問題の原因を特定できない場合は、Microsoft サポートにお問い合わせください。 サポートに連絡する前に、問題の根本原因を特定するのに役立つ適切なログ ファイルを収集します。 詳細については、「 WSDAPI トレースの有効化」を参照してください。

WSDAPI 診断手順

WSDAPI のトラブルシューティングを使用したはじめに

Netmon フィルターとサンプル DPWS フィルターのダウンロード