次の方法で共有


メッセージ ログを参照する

ここでは、メッセージ ログの表示方法について説明します。

サービス トレース ビューアーでのメッセージ ログの表示

メッセージは WCF で処理されるときに変換されます。そのため、ログ記録されたメッセージは、ログ記録された時点でのメッセージの内容を反映しているにすぎず、ネットワーク上での内容ではありません。

メッセージ ログの出力はメッセージの転送形式とは関係がないため、メッセージ ログは常にデコードされたメッセージを出力します。メッセージ ログが適切に設定されていれば、すべてのログ メッセージはプレーンテキストになります。たとえば、ログ メッセージの形式 (プレーンテキスト) は、バイナリ メッセージ エンコーダーの使用には影響されません。

XmlWriterTraceListener の出力は、一連の XML フラグメントを含んだファイルです。このファイルは有効な XML ファイルではないことに注意してください。サービス トレース ビューアー ツール (SvcTraceViewer.exe) を使用してメッセージ ログ ファイルを表示することをお勧めします。このツールの使用方法の詳細については、「サービス トレース ビューアーを使用した相関トレースの表示とトラブルシューティング」を参照してください。

サービス トレース ビューアーでは、メッセージは [Message] タブに表示されます。操作エラーの原因となった、または操作エラーに関連するメッセージは、エラーの重大度に応じて、黄色 (警告レベル) または赤色 (エラー レベル) で強調表示されます。メッセージをダブルクリックすると、要求の処理のコンテキストに従ってメッセージ トレースが表示されます。

ms730918.note(ja-jp,VS.100).gif注 :
メッセージにヘッダーがない場合は、<header/> タグがログに記録されません。

クライアント、中継、およびサービスによって記録されたメッセージの表示

環境には、クライアント、クライアントからメッセージが送信される中継、中継からさらにメッセージが転送されるサービスが含まれることがあります。これら 3 つの場所すべてでメッセージのログ記録が有効になっており、3 つのメッセージ ログをすべて同時にサービス トレース ビューアー ツール (SvcTraceViewer.exe) に表示した場合、メッセージ ログ交換は正しく表示されません。これは、メッセージ ヘッダーの CorrelationIdActivityId が、すべての送受信ペアで一意にならなくなるためです。

この問題を解決するには、次のいずれかの方法に従います。

Message outgoingMessage = Message.CreateMessage(incomingMessage.Version, incomingMessage.Headers.Action, incomingMessage.GetReaderAtBodyContents());

for (int i = 0; i < incomingMessage.Headers.Count; i++)
{
   if (incomingMessage.Headers[i].Name.Equals("ActivityId", StringComparison.InvariantCultureIgnoreCase) ||
incomingMessage.Headers[i].Name.Equals("Action", StringComparison.InvariantCultureIgnoreCase))
   {
      continue;
    }
    outgoingMessage.Headers.CopyHeaderFrom(incomingMessage, i);
}

メッセージ ログ内容が不正確になる例外的なケース

次の条件では、ログ記録されたメッセージがネットワーク上にあるオクテット ストリームの正確な表現とはならない場合があります。

  • BasicHttpBinding の場合、エンベロープ ヘッダーは /addressing/none 名前空間の受信メッセージについてログ記録されます。

  • 空白に不一致が生じる場合があります。

  • 受信メッセージの場合、空の要素が異なる表現になる場合があります。たとえば、<tag/> ではなく <tag></tag> となることがあります。

  • 既知の PII ログ記録が、既定または enableLoggingKnownPii="true" という明示的な設定で、無効になっている場合。

  • UTF-8 へ変換するためのエンコードが有効な場合。

参照

概念

サービス トレース ビューアー ツール (SvcTraceViewer.exe)
サービス トレース ビューアーを使用した相関トレースの表示とトラブルシューティング

その他のリソース

メッセージ ログ