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

生パケットを表示できる任意のネットワーク パケット アナライザーを使用して、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 フィルターのダウンロード