次の方法で共有


サービス トレース ビューアー ツール (SvcTraceViewer.exe)

Windows Communication Foundation (WCF) サービス トレース ビューアー ツールは、WCF によって生成された診断トレースを分析するのに役立ちます。 サービス トレース ビューアーは、WCF サービスの問題を診断、修復、検証できるように、ログ内のトレース メッセージを簡単にマージ、表示、フィルター処理する方法を提供します。

トレースの構成

診断トレースは、アプリケーションの操作全体で何が起こっているかを示す情報を提供します。 名前が示すように、ソースから宛先、および中間ポイントまでの操作に従うことができます。

トレースは、アプリケーションの構成ファイル (Web ホスト型アプリケーションの場合は Web.config、セルフホステッド アプリケーションの場合は Appname.config) を使用して構成できます。 以下に例を示します。

<system.diagnostics>
    <trace autoflush="true" />
    <sources>
            <source name="System.ServiceModel"
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="sdt"
                   type="System.Diagnostics.XmlWriterTraceListener"
                   initializeData= "SdrConfigExample.e2e" />
            </listeners>
         </source>
    </sources>
</system.diagnostics>

この例では、トレース リスナーの名前と種類を指定します。 リスナーには sdt という名前が付けられ、標準の .NET Framework トレース リスナー (System.Diagnostics.XmlWriterTraceListener) が型として追加されます。 initializeData属性は、そのリスナーがSdrConfigExample.e2eするログ ファイルの名前を設定するために使用されます。 ログ ファイルの場合は、完全修飾パスを単純なファイル名に置き換えることができます。

この例では、SdrConfigExample.e2e という名前のルート ディレクトリにファイルを作成します。 「WCF トレース ファイルを開いて表示する」セクションの説明に従ってトレース ビューアーを使用してファイルを開くと、送信されたすべてのメッセージを表示できます。

トレース レベルは、 switchValue 設定によって制御されます。 使用可能なトレース レベルについては、次の表で説明します。

トレース レベル 説明
危うい - Fail-Fast エントリとイベント ログ エントリ、およびトレースの関連付け情報をログに記録します。 クリティカル レベルを使用する場合の例を次に示します。
- AppDomain がハンドルされない例外のためにダウンしました。
- アプリケーションの起動に失敗する。
- エラーの原因となったメッセージは、プロセス MyApp.exeから送信されました。
エラー - すべての例外をログに記録します。 エラー レベルは、次の状況で使用できます。
- 無効なキャスト例外が原因でコードがクラッシュしました。
- "エンドポイントの作成に失敗しました" という例外が原因で、起動時にアプリケーションが失敗します。
Warnung - エラーまたは重大なエラーが発生する可能性がある条件が存在します。 このレベルは、次の状況で使用できます。
- アプリケーションが受信する要求の数が、調整設定で許可される数を超えています。
- 受信キューは、構成された容量の 98% です。
情報 - システムの状態の監視と診断、パフォーマンスの測定、またはプロファイリングに役立つメッセージが生成されます。 このような情報は、容量計画とパフォーマンス管理に利用できます。 このレベルは、次の状況で使用できます。
- メッセージが AppDomain に到達し、逆シリアル化された後にエラーが発生しました。
- HTTP バインディングの作成中にエラーが発生しました。
詳細 - ユーザー コードとサービスの両方のデバッグ レベルのトレース。 次の場合に、このレベルを設定します。
- エラーが発生したときにコード内のどのメソッドが呼び出されたかがわかりません。
- 正しくないエンドポイントが構成されていて、予約ストアのエントリがロックされているため、サービスの開始に失敗しました。
ActivityTracing 処理アクティビティとコンポーネント間のフロー イベント。

このレベルにより、管理者と開発者は同じアプリケーション ドメイン内のアプリケーションを関連付けることができます。

- アクティビティ境界のトレース: 開始/停止。
- 転送のトレース。

addを使用して、使用するトレース リスナーの名前と種類を指定できます。 この構成例では、リスナーに sdt という名前が付けられ、標準の .NET Framework トレース リスナー (System.Diagnostics.XmlWriterTraceListener) が型として追加されます。 initializeDataを使用して、そのリスナーのログ ファイルの名前を設定します。 さらに、完全修飾パスを単純なファイル名に置き換えることができます。

.NET Framework 4.8 以降では、一部のハイ コントラスト テーマの ComboBox コントロールが正しい色で表示されます。 この変更を無効にするには、 svcTraceViewer.exe.config ファイルから次の設定を削除します。

<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false" />

サービス トレース ビューアー ツールの使用

WCF トレース ファイルを開いて表示する

サービス トレース ビューアーでは、次の 3 種類のファイルがサポートされています。

  • WCF トレース ファイル (.svcLog)

  • イベント トレース ファイル (.etl)

  • 真紅トレース ファイル

サービス トレース ビューアーを使用すると、サポートされているトレース ファイルを開いたり、追加のトレース ファイルを追加および統合したり、トレース ファイルのグループを同時に開いてマージしたりできます。

トレース ファイルを開くには
  1. コマンド ウィンドウを使用してサービス トレース ビューアーを起動し、WCF のインストール場所 (C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin) に移動し、「 SvcTraceViewer.exe」と入力します。

サービス トレース ビューアー ツールは、.svclog と .stvproj という 2 種類のファイルに関連付けることができます。 コマンド ラインで 2 つのパラメーターを使用して、ファイル拡張子を登録および登録解除できます。

/register: ファイル拡張子 ".svclog" と ".stvproj" の関連付けを SvcTraceViewer.exe に登録します

/unregister: ファイル拡張子 ".svclog" と ".stvproj" と SvcTraceViewer.exe の関連付けの登録を解除します

  1. サービス トレース ビューアーが起動したら、[ ファイル ] をクリックし、[ 開く] をポイントします。 トレース ファイルが格納されている場所に移動します。

  2. 開くトレース ファイルをダブルクリックします。

    Shift キーを押しながら複数のトレース ファイルをクリックして選択し、同時に開きます。 サービス トレース ビューアーでは、すべてのファイルの内容がマージされ、1 つのビューが表示されます。 たとえば、クライアントとサービスの両方のトレース ファイルを開くことができます。 これは、構成でメッセージ ログとアクティビティの伝達を有効にしている場合に便利です。 この方法では、クライアントとサービスの間のメッセージ交換を調べることができます。 複数のファイルをビューアーにドラッグしたり、[ プロジェクト ] タブを使用したりすることもできます。詳細については、「プロジェクトの管理」セクションを参照してください。

  3. 開いているコレクションにトレース ファイルを追加するには、[ ファイル ] をクリックし、[ 追加] をポイントします。 開いたウィンドウで、トレース ファイルの場所に移動し、追加するファイルをダブルクリックします。

注意事項

200 MB を超えるトレース ログ ファイルを読み込むのはお勧めしません。 この制限を超えるファイルを読み込もうとすると、コンピューター リソースによっては、読み込みプロセスに時間がかかる場合があります。 サービス トレース ビューアー ツールは、長時間応答しないか、コンピューターのメモリを使い果たす可能性があります。 これを回避するには、部分的な読み込みを構成することをお勧めします。 これを行う方法の詳細については、「大きなトレース ファイルの読み込み」セクションを参照してください。

イベントトレーシングと真紅トレーシング

ビューアーのネイティブ形式は、WCF が出力するアクティビティ トレース形式です。 別の形式で出力されたトレースは、ビューアーで表示される前に変換する必要があります。 現時点では、アクティビティ トレース形式に加えて、ビューアーはイベント トレースと真紅トレースをサポートしています。

アクティビティ トレースを含まないファイルを開くと、ビューアーはファイルの変換を試みます。 変換されたトレース データを格納するファイルの名前と場所を指定する必要があります。 データが変換されると、ビューアーに新しいファイルの内容が表示されます。

変換するには、変換されたトレース データを格納するためのディスク領域が必要です。 変換を開始する前に、データを格納するための十分なディスク領域があることを確認します。 それ以外の場合、変換は失敗します。

プロジェクトの管理

ビューアーは、複数のトレース ファイルの表示を容易にするプロジェクトをサポートしています。 たとえば、クライアント トレース ファイルとサービス トレース ファイルがある場合は、それらをプロジェクトに追加できます。 その後、プロジェクトを開くたびに、プロジェクト内のすべてのトレース ファイルが同時に読み込まれます。

プロジェクトを管理するには、次の 2 つの方法があります。

  • [ ファイル ] メニューでは、プロジェクトを開いたり、保存したり、閉じたりすることができます。

  • [ プロジェクト ] タブでは、ファイルをプロジェクトに追加できます。

WCF トレースの表示

WCF は、アクティビティ トレース形式を使用してトレースを出力します。 アクティビティ トレース モデルでは、個々のトレースが目的に応じてアクティビティにグループ化されます。 論理制御フローは、アクティビティ間で転送されます。 たとえば、アプリケーションの有効期間中に、多くの "メッセージ送信アクティビティ" が表示され、消えます。 トレースとアクティビティの表示の詳細、およびサービス トレース ビューアーのユーザー インターフェイスについては、「 相関トレースとトラブルシューティングの表示にサービス トレース ビューアーを使用する」を参照してください。

別のビューに切り替える

サービス トレース ビューアーには、次のさまざまなビューが用意されています。 これらはビューアーの左側のウィンドウにタブとして表示され、[ 表示 ] メニューからアクセスすることもできます。

  • アクティビティ ビュー

  • プロジェクト ビュー

  • メッセージの表示

  • グラフ ビュー

アクティビティ ビュー

トレース ファイルを開くと、トレースがアクティビティにグループ化され、左側のウィンドウの [アクティビティ ] ビューに表示されます。

アクティビティ ビューには、アクティビティ名、アクティビティ内のトレースの数、期間、開始時刻、終了時刻が表示されます。

一覧表示されているアクティビティのいずれかをクリックすると、このアクティビティのトレースが右側のトレース ウィンドウに表示されます。 その後、トレースを選択して詳細を表示できます。

Ctrl キーまたは Shift キーを押しながら目的のアクティビティをクリックすると、複数のアクティビティを選択できます。 トレース ペインには、選択したアクティビティのすべてのトレースが表示されます。

アクティビティをダブルクリックすると、 グラフ ビューに表示できます。 別の方法として、アクティビティを選択し、 グラフ ビューに切り替えます。

アクティビティ "0000000000000" は、グラフ ビューに表示できない特殊なアクティビティです。 他のすべてのアクティビティがリンクされているため、このアクティビティを表示するとパフォーマンスに重大な影響があります。

列のタイトルをクリックすると、アクティビティ リストを並べ替えることができます。 警告トレースを含むアクティビティには黄色の背景があり、エラー トレースを含むアクティビティには赤い背景があります。

アクティビティにはさまざまな種類があり、各種類は各アクティビティの左側にあるアイコンに対応します。 その意味については、「トレース アイコンについて」セクションを参照してください。

プロジェクト ビュー

このビューを使用すると、現在のプロジェクトのトレース ファイルを管理できます。 詳細については、「プロジェクトの管理」セクションを参照してください。

メッセージの表示

このビューを使用すると、アクション、日付/時刻、プロセス、アクティビティ、From/To など、すべてのメッセージ ログ トレースを表示し、関連付けられているメッセージ ログ トレースの詳細に移動できます。 メッセージ フローを簡単に移動できるように、アクティビティの境界、プロセス/スレッド、または送受信でメッセージ ログ トレースをグループ化できます。

グラフ ビュー

このビューには、特定のアクティビティのトレース データがグラフ形式で表示されます。 グラフ フォームを使用すると、複数のアクティビティ間でデータが移動するときに、イベントの段階的な実行と複数のアクティビティ間の相互関係を確認できます。

グラフ ビューに切り替えるには、[アクティビティ] ビューでアクティビティを選択し、[アクティビティ] タブをクリックするか、メッセージ ビューでメッセージ ログ トレースをクリックします。 複数のトレース ファイルが読み込まれ、アクティビティに複数のファイルからのトレースが含まれている場合、関連するすべてのトレースがグラフ ビューに表示されます。 アクティビティとメッセージ ログ トレースをダブルクリックすると、 グラフ ビューにも表示されます。

グラフ ビューでは、各垂直列はアクティビティを表し、列の各ブロックはトレースを表します。 アクティビティはプロセス (またはスレッド) ごとにグループ化されます。 アクティビティ間の小さな矢印は転送を表します。 プロセス間の大きな矢印はメッセージ交換を表します。 選択中のアクティビティは常に黄色です。

グラフでのトレースの選択
  1. グラフ内のブロックをクリックします。

  2. 上下のキーを使用して、隣接するトレースを選択します。

  3. トレース ペインと詳細ペインでトレース情報を確認します。

アクティビティ転送の展開または折りたたみ

選択したアクティビティが別のアクティビティに転送されるときに、アクティビティ転送を展開できます。 これにより、転送に従います。

アクティビティ転送を展開または折りたたみするには、

  1. 転送アイコンの左側に "+" 記号が付いた転送トレースを見つけます。

  2. "+" をクリックするか、キーボードを使用して Ctrl キー と "+" キーを押します。

  3. 次のアクティビティがグラフに表示されます。

  4. 転送アイコンの左側に "-" が表示されます。 "-" 記号をクリックするか、Ctrl キーを押して "-" キーを押すと、アクティビティ転送が折りたたまれます。

アクティビティに複数の転送があり、いずれかの転送を展開すると、ルート アクティビティから新しいアクティビティに至るアクティビティが表示されます。 これらの新しいアクティビティは折りたたまれた形式で表示されます。 これらのアクティビティの詳細を表示する場合は、グラフのヘッダーにある展開アイコンをクリックして、アクティビティを垂直方向に展開します。

アクティビティを垂直方向に展開または折りたたむ

ビューアーは、アクティビティを折りたたむことで、アクティビティ グラフの不要な詳細を非表示にします。 折りたたまれたアクティビティでは、個々のトレースは表示されません。 転送トレースのみが表示されます。 アクティビティ内のすべてのトレースを表示する場合は、グラフのヘッダーにあるアクティビティの展開記号をクリックして、アクティビティを垂直方向に展開します。

アクティビティを垂直方向に展開または折りたたむには、

  1. アクティビティ ヘッダーの [+] アイコンをクリックして、アクティビティを垂直方向に展開します。

  2. すべてのトレースがグラフに表示されていることに注意してください。

  3. アクティビティ ヘッダーの [-] アイコンをクリックして、アクティビティを垂直方向に折りたためます。

  4. 重要な転送、メッセージ ログ、警告、および例外トレースのみがアクティビティに表示されることに注意してください。

オプション

グラフ ビューの [オプション] メニューから 2 つの オプション を選択できます。

  • アクティビティ境界トレースを表示します。オフにすると、グラフ内のアクティビティ境界トレースが無視されます。

  • メッセージトレース以外の詳細トレースを表示します。このチェック ボックスをオフにすると、メッセージ トレースを除く詳細レベルのトレースが無視されます。 ほとんどの場合、詳細レベルのトレースは分析にとってあまり重要ではありません。 このオプションは、詳細レベルのトレースを分析せず、より重要なトレースのみに焦点を当てる場合に役立ちます。

レイアウト モード

ビューアーには、 プロセススレッドの 2 つのレイアウト モードがあります。 この設定では、組織の最大単位を定義します。 既定のレイアウト モードは Process です。つまり、アクティビティはグラフ内のプロセスごとにグループ化されます。

実行リスト

このドロップダウン リストから、グラフに表示するプロセスまたはスレッドを選択できます。 たとえば、2 つのクライアント (A と B) と 1 つのサービスのトレース ファイルを開き、サービスとクライアント A のみをグラフに表示する場合は、一覧からクライアント B の選択を解除できます。

トレースの詳細の表示

トレースの詳細を表示するには、[トレース] ウィンドウでトレースを選択します。 詳細が [詳細] ウィンドウに表示されます。

トレース ウィンドウ

サービス トレース ビューアーの右上のペインは、トレース ウィンドウです。 選択したアクティビティのすべてのトレースが、トレース レベル、スレッド ID、プロセス名などの追加情報と共に一覧表示されます。

トレースの生 XML をクリップボードにコピーするには、トレースを右クリックし、[トレースを クリップボードにコピー] を選択します。

詳細ペイン

サービス トレース ビューアーの左下ペインは、詳細ウィンドウです。 トレースの詳細を表示するための 3 つのタブが用意されています。

[書式設定] ビューには、より整理された方法で情報が表示されます。 テーブルとツリー内のすべての既知の XML 要素が一覧表示されるため、情報の読み取りと理解が容易になります。

XML ビューには、選択したトレースに対応する XML が表示されます。 強調表示と構文の色がサポートされています。 検索を使用して文字列を検索すると、検索結果が強調表示されます。

メッセージ ビューには、メッセージ ログ トレースに XML のメッセージ部分が表示されます。 メッセージ以外のトレースを選択すると非表示になります。

WCF トレースのフィルター処理

トレースの分析を容易にするために、次の方法でフィルター処理できます。

  • フィルター ツール バーでは、定義済みのフィルターとカスタム フィルターにアクセスできます。 [ 表示 ] メニューから有効にすることができます。

  • ビューアーの定義済みフィルターを使用して、WCF トレースの一部を選択的にフィルター処理できます。 既定では、すべてのインフラストラクチャ トレースを通過できるように設定されています。 このフィルターの設定は、[表示] メニューの [フィルター オプション] サブメニューで定義されます。

  • カスタム XPath フィルターを使用すると、ユーザーはフィルター処理を完全に制御できます。 これらは、[表示] メニューの [カスタム フィルター] で定義できます。

すべてのフィルターを通過するトレースのみが表示されます。

フィルター ツール バーの使用

ツールの上部にフィルター ツール バーが表示されます。 存在しない場合は、[ 表示 ] メニューでアクティブ化できます。 バーには、次の 3 つのコンポーネントがあります。

  • 検索対象: フィルター 操作で検索する対象を定義します。 たとえば、プロセス X のコンテキストで出力されたすべてのトレースを検索する場合は、このフィールドを X に設定し 、[検索対象 ] フィールドを [プロセス名] に設定します。 このフィールドは、時間ベースのフィルターが選択されると DateTime セレクター コントロールに変更されます。

  • 検索対象: このフィールドは、適用するフィルターの種類を定義します。

  • レベル: レベル設定は、フィルターで許可される最小トレース レベルを定義します。 たとえば、レベルが Error と Up に設定されている場合、Error レベルと Critical レベルのトレースのみが表示されます。 このフィルターは、[検索対象] と [検索先] で指定された条件と結合されます。

[ 今すぐフィルター] ボタンをクリックすると、フィルター操作が開始されます。 一部のフィルター (特に大きなデータ セットに適用される場合) は、完了に長い時間がかかります。 [操作] メニューのステータス バーに表示される [停止 ] ボタンを押すと、フィルター 操作 を取り消すことができます。

[クリア] ボタンは、定義済みのフィルターとカスタム フィルターをリセットして、すべてのトレースを通過できるようにします。

フィルター オプション

ビューアーは、ビューから WCF トレースを自動的に削除できます。 WCF の特定の領域によって出力されるトレース (たとえば、ビューからトランザクション関連のトレースを削除するなど) を選択的に削除できます。

このフィルターの設定は、[表示] メニューの [フィルター オプション] サブメニューで定義されます。

カスタム フィルター

XML パス言語 (XPath) に慣れている場合は、それを使用してカスタム フィルターを作成し、目的の XML 要素のトレース データを検索できます。 フィルターには、フィルター ツール バーからアクセスできます。

カスタム フィルターにはパラメーターを含めることができます。 既存のカスタム フィルターをインポートすることもできます。

カスタム フィルターの作成

フィルターは、次の 2 つの方法で作成できます。

テンプレート ウィザードを使用したカスタム フィルターの作成

既存のトレースをクリックし、トレースの構造に基づいてフィルターを作成できます。 この例では、スレッド ID に基づいてカスタム フィルターを作成します。

  1. ビューアーの右上の領域にあるトレース ウィンドウで、フィルター処理する要素を含むトレースを選択します。

  2. トレース ウィンドウの上部にある [ カスタム フィルターの作成 ] ボタンをクリックします。

  3. 表示されるダイアログ ボックスで、フィルターの名前を入力します。 この例では、「 Thread ID」と入力します。 フィルターの説明を指定することもできます。

  4. 左側のツリー ビューには、手順 1 で選択したトレース レコードの構造が表示されます。 条件を作成する要素を参照します。 この例では、XPath: /E2ETraceEvent/System/Execution/@ThreadID ノードにある ThreadID を参照します。 ツリー ビューで ThreadID 属性をダブルクリックします。 これにより、ダイアログの右側に属性の式が作成されます。

  5. ThreadID 条件のパラメーター フィールドを None から '{0}' に変更します。 この手順では、フィルターが適用されたときに ThreadID 値を構成できます。 (「フィルターを適用する方法」セクションを参照)最大 4 つのパラメーターを定義できます。 条件は OR 演算子を使用して結合されます。

  6. [ OK] を クリックしてフィルターを作成します。

テンプレート ウィザードを使用してフィルターを作成した後は、手動でのみ編集できます。 以前に作成したフィルターのウィザードをアクティブ化することはできません。 さらに、テンプレート ウィザードで作成された XPath フィルターの条件は、OR 演算子を使用して結合されます。 AND 操作が必要な場合は、作成後にフィルター式を編集できます。

カスタム フィルターを手動で作成する

[カスタム フィルター] メニューでは、XPath フィルターを手動で入力できます。

  1. [表示] メニューの [ カスタム フィルター ] メニュー項目をクリックします。

  2. 表示されたダイアログで、[新規] をクリックします

  3. 少なくとも、フィルター名と XPath 式を指定します。

  4. OK をクリックします。

カスタム フィルターの適用

カスタム フィルターが作成されると、フィルター ツール バーからアクセスできます。 フィルター ツール バーの [検索対象] フィールド 、適用するフィルターを選択します。 前の例では、[スレッド ID] を選択します。

  1. 検索する値を [ 検索 対象] フィールドに指定します。 この例では、検索するスレッドの ID を入力します。

  2. [ 今すぐフィルター] をクリックし、操作の結果を確認します。

フィルターで複数のパラメーターを使用する場合は、[ 検索 対象] フィールドに区切り記号として ";" を使用してパラメーターを入力します。 たとえば、次の文字列は 3 つのパラメーターを定義します: '1;findValue;text'。 ビューアーは、フィルターの {0} パラメーターに '1' を適用します。 'findValue' と 'text' はそれぞれ {1} と {2} に適用されます。

カスタム フィルターの共有

カスタム フィルターは、異なるセッションと異なるユーザー間で共有できます。 フィルターを定義ファイルにエクスポートし、このファイルを別の場所にインポートできます。

カスタム フィルターをインポートするには:

  1. [ 表示 ] メニューの [ カスタム フィルター] をクリックします。

  2. 開いたダイアログ ボックスで、[ インポート ] ボタンをクリックします。

  3. カスタム フィルター ファイル (.stvcf) に移動し、ファイルをクリックし、[ 開く ] ボタンをクリックします。

カスタム フィルターをエクスポートするには:

  1. [表示] メニューの [ カスタム フィルター] をクリックします。

  2. 開いたダイアログ ボックスで、エクスポートするフィルターを選択します。

  3. [ エクスポート ] ボタンをクリックします。

  4. カスタム フィルター定義ファイル (.stvcf) の名前と場所を指定し、[ 保存 ] ボタンをクリックします。

これらのカスタム フィルターは、サービス トレース ビューアーからのみインポートおよびエクスポートできます。 他のツールでは読み取ることができません。

データの検索

ビューアーには、データを検索する次の方法が用意されています。

  • 検索ツール バーを使用すると、最も一般的な検索オプションにすばやくアクセスできます。

  • [検索] ダイアログには、その他の検索オプションがあります。 [ 編集] メニューまたは短いキー Ctrl + F キーを使用してアクセスできます。

検索ツール バーがビューアーの上部に表示されます。 存在しない場合は、[ 表示 ] メニューでアクティブ化できます。 バーには、次の 2 つのコンポーネントがあります。

  • 検索対象: 検索キーワードを入力できます。

  • 検索対象: 検索範囲を入力できます。 すべてのアクティビティで検索するか、現在のアクティビティでのみ検索するかを選択できます。

検索ダイアログには、次の 2 つの追加オプションがあります。

  • ターゲットの検索:

    • "生ログ データ" オプションは、すべての生データのキーワードを検索します。

    • "XML テキスト" オプションと "XML 属性" オプションは、XML 要素でのみ検索します。

    • "ログ メッセージ" オプションは、メッセージ内でのみキーワードを検索します。

  • ルート アクティビティを無視する: 検索では、"000000000000" アクティビティのトレースが無視されます。 これにより、ルート アクティビティに何千ものトレースがあり、そのほとんどが転送である場合に、大きなトレース ファイルのパフォーマンスが向上します。

トレースはアプリケーションの実行時に段階的に記録されるため、トレース内を移動すると、アプリケーションをデバッグするのに役立ちます。 サービス トレース ビューアーには、トレース内を移動するためのさまざまな方法が用意されています。

ステップ フォワードまたはバックワード

各トレースをプログラムのコード行と見なす場合、ステップ フォワードは Visual Studio 統合開発環境 (IDE) の "ステップ オーバー" とよく似ています。 違いは、トレースを前に進めることもできます。 ステップフォワードとは、アクティビティ内の次のトレースに移動することを意味します。

  • ステップフォワード: [アクティビティ ] メニューを使用するか、"F10" キーを押します。 トレース ウィンドウで方向キー "下" を使用することもできます。

  • 戻るステップ: [アクティビティ ] メニューを使用するか、"F9" キーを押します。 トレース ウィンドウで方向キー "上" を使用することもできます。

WCF メッセージはマシンにまたがるアクティビティ ID を伝達できるため、別のプロセスまたは別のコンピューターで発生するアクティビティに移動する可能性があります。

転送のフォロー

トレースの転送は、トレース ファイル内の特殊なトレースです。 アクティビティは、転送トレースによって別のアクティビティに転送される場合があります。 たとえば、"Activity A" は "Activity B" に転送される場合があります。 このような場合は、"アクティビティ A" に転送トレースがあり、"To: Activity" という名前と転送アイコンが付いています。 この転送トレースは、2 つのトレース間のリンクです。 "アクティビティ B" では、アクティビティの最後に転送トレースが存在し、"アクティビティ A" に戻る場合もあります。 これは、プログラムでの関数呼び出しに似ています。A は B を呼び出し、B は戻ります。

"転送のフォロー" は、デバッガーの "ステップ イン" に似ています。 A から B への転送に従います。他のトレースには影響しません。

転送に従う方法は、マウスまたはキーボードの 2 つあります。

  • マウスによる: トレース ペインで転送トレースをダブルクリックします。

  • キーボードで: 転送トレースを選択し、[ アクティビティ ] メニューの [転送のフォロー] を使用するか、"F11" キーを押します

多くの場合、アクティビティ A がアクティビティ B に転送されると、アクティビティ A はアクティビティ B がアクティビティ A に戻るまで待機します。つまり、アクティビティ A には、アクティビティ B がアクティブにトレースしている期間中にログに記録されたトレースはありません。 ただし、アクティビティ A が待機せず、トレースをログに記録し続ける可能性もあります。 アクティビティ B がアクティビティ A に戻らない場合もあります。したがって、アクティビティの転送は、この意味で関数呼び出しとは異なります。 Graph ビューでは、アクティビティの転送について理解を深めることができます。

次へまたは前の転送にジャンプ

現在のアクティビティを分析するとき、または複数のアクティビティが選択されたときに選択したアクティビティを分析する場合は、転送するアクティビティをすばやく見つけることができます。 "次の転送にジャンプ" を使用すると、アクティビティ内の次の転送トレースを見つけることができます。 転送トレースが見つかると、"転送のフォロー" を使用して次のアクティビティにステップ インできます。

  • 次の転送にジャンプ: [アクティビティ ] メニューを使用するか、"Ctrl + F10" キーを押します。

  • 前の転送にジャンプ: [アクティビティ ] メニューを使用するか、"Ctrl + F9" キーを押します。

アクティビティ ウィンドウとトレース ウィンドウでのナビゲーションはデバッグと似ていますが、 Graph ビューを使用すると、ナビゲーションのエクスペリエンスが大幅に向上します。 詳細については、「グラフ ビュー」セクションを参照してください。

大きなトレース ファイルの読み込み

トレース ファイルは非常に大きくなる可能性があります。 たとえば、"詳細" レベルでトレースを有効にした場合、数分実行する結果のトレース ファイルは、ネットワーク速度と通信パターンに応じて、数百メガバイト以上になる可能性があります。

サービス トレース ビューアーで非常に大きなトレース ファイルを開くと、システムのパフォーマンスが低下する可能性があります。 読み込み速度と読み込み後の応答時間が遅くなる可能性があります。 実際の速度は、ハードウェアの構成によって時間によって異なります。 ほとんどの PC では、200M を超えるトレース ファイルを読み込むと、パフォーマンスに重大な影響があります。 1G を超えるトレース ファイルの場合、ツールは使用可能なすべてのメモリを使い切ったり、非常に長い時間応答を停止したりする可能性があります。

大規模なトレース ファイルを分析する際の読み込みと応答時間の遅延を回避するために、サービス トレース ビューアーには"部分読み込み" と呼ばれる機能が用意されています。これは、一度にトレースのごく一部しか読み込まれない機能です。 たとえば、1 GB を超えるトレース ファイルがサーバー上で数日間実行されている場合があります。 一部のエラーが発生し、トレースを分析する場合は、トレース ファイル全体を開く必要はありません。 代わりに、エラーが発生した可能性がある一定期間内にトレースを読み込むことができます。 スコープが小さいため、サービス トレース ビューアー ツールはファイルの読み込みを高速化でき、より小さなデータ セットを使用してエラーを特定できます。

部分読み込みの有効化

部分読み込みを手動で有効にする必要はありません。 読み込もうとするトレース ファイルの合計サイズが 40 MB を超える場合、読み込むパーツを選択するための部分的な読み込みダイアログがサービス トレース ビューアーに自動的に表示されます。

トレースは期間に均等に分散されない可能性があるため、[部分読み込み] ツール バーで指定した期間の長さは、表示される読み込みサイズに比例しない可能性があります。 実際の読み込みサイズは、部分読み込みダイアログの [推定サイズ] よりも小さくすることができます。

部分読み込みの調整

トレース ファイルを部分的に読み込んだ後、読み込むデータ セットを変更できます。 これを行うには、ビューアーの上部にある部分読み込みツール バーを調整します。

  1. ツール バーをマウスで移動するか、開始時間と終了時刻を入力します。

  2. [ 調整 ] ボタンをクリックします。

トレース アイコンについて

アクティビティ ビュー、グラフ ビュー、トレース ペインでサービス トレース ビューアー ツールがさまざまな項目を表すために使用するアイコンの一覧を次に示します。

分類されていない一部のトレース ("メッセージが閉じている" など) にはアイコンがありません。

アクティビティ トレース トレース

アイコン 説明
警告トレース 警告トレース: 警告レベルで出力されるトレース
エラー トレース エラー トレース: エラー レベルで出力されるトレース。
アクティビティ開始トレース: アクティビティ開始トレース: アクティビティの開始をマークするトレース。 アクティビティの名前が含まれています。 アプリケーション デザイナーまたは開発者は、プロセスまたはスレッドごとにアクティビティ ID ごとに 1 つのアクティビティ開始トレースを定義する必要があります。

トレースの関連付けのためにアクティビティ ID がトレース ソース間で伝達される場合は、同じアクティビティ ID (トレース ソースごとに 1 つ) に対して複数の開始が表示されます。 トレース ソースに対して ActivityTracing が有効になっている場合、トレースの開始が出力されます。
Activity Stop trace アクティビティ停止トレース: アクティビティの終了をマークするトレース。 . アクティビティの名前が含まれています。 アプリケーション デザイナーまたは開発者は、トレース ソースごとにアクティビティ ID ごとに 1 つのアクティビティ停止トレースを定義する必要があります。 トレース時間の細分性が十分に小さい場合を除き、特定のトレース ソースからのトレースは、そのトレース ソースによって出力されるアクティビティの停止の後には表示されません。 その場合、Stop を含む 2 つのトレースが同時に表示されたときにインターリーブされる可能性があります。 トレースの関連付けのためにアクティビティ ID がトレース ソース間で伝達される場合は、同じアクティビティ ID (トレース ソースごとに 1 つ) に対して複数の停止が表示されます。 トレース ソースに対して ActivityTracing が有効になっている場合、Stop トレースが出力されます。
Activity Suspend trace アクティビティ中断トレース: アクティビティが一時停止された時刻を示すトレース。 中断されたアクティビティでは、アクティビティが再開されるまでトレースは生成されません。 中断されたアクティビティは、トレース ソースのスコープ内でそのアクティビティで処理が行されていないことを示します。 トレースの中断/再開は、プロファイリングに役立ちます。 トレース ソースに対して ActivityTracing が有効になっている場合、中断トレースが出力されます。
アクティビティ再開トレース アクティビティ再開トレース: アクティビティが中断された後に再開された時刻を示すトレース。 トレースは、そのアクティビティで再度出力される可能性があります。 トレースの中断/再開は、プロファイリングに役立ちます。 トレース ソースに対して ActivityTracing が有効になっている場合、再開トレースが生成されます。
転送 転送: 論理制御フローが 1 つのアクティビティから別のアクティビティに転送されるときに出力されるトレース。 転送元のアクティビティは、転送先のアクティビティと並行して作業を実行し続ける可能性があります。 トレース ソースに対して ActivityTracing が有効になっている場合、転送トレースが出力されます。
1df215cb-b344-4f36-a20d-195999bda741 転送の From: 別のアクティビティから現在のアクティビティへの転送を定義するトレース。
74255b6e-7c47-46ef-8e53-870c76b04c3f する 転送: 現在のアクティビティから別のアクティビティへの論理制御フローの転送を定義するトレース。

WCF トレース

アイコン 説明
メッセージ ログ トレース メッセージ ログ トレース: トレース ソースが有効な場合に、WCF メッセージがメッセージ ログ機能によってログに記録されるときに生成されるトレース。 このトレースをクリックすると、メッセージが表示されます。 メッセージには、ServiceLevelSendRequest、TransportSend、TransportReceive、ServiceLevelReceiveRequest という 4 つの構成可能なログ ポイントがあります。これは、メッセージ ログ トレースの messageSource 属性で指定することもできます。
Message Received trace メッセージ受信トレース: System.ServiceModel トレース ソースが情報レベルまたは詳細レベルで有効になっている場合に、WCF メッセージの受信時に出力されるトレース。 このトレースは、アクティビティ グラフ ビューでメッセージ相関矢印を表示するために不可欠です。
Message Sent trace メッセージ送信トレース: System.ServiceModel トレース ソースが情報レベルまたは詳細レベルで有効になっている場合に WCF メッセージが送信されたときに生成されるトレース。 このトレースは、アクティビティ グラフ ビューでメッセージ相関矢印を表示するために不可欠です。

アクティビティ

アイコン 説明
アクティビティ アクティビティ: 現在のアクティビティが汎用アクティビティであることを示します。
ルート アクティビティ ルート アクティビティ: プロセスのルート アクティビティを示します。

WCF アクティビティ

アイコン 説明
環境アクティビティ 環境アクティビティ: WCF ホストまたはクライアントを作成、開く、または閉じるアクティビティ。 これらのフェーズ中に発生したエラーは、このアクティビティに表示されます。
リッスン アクティビティ リッスン アクティビティ: リスナーに関連するトレースをログに記録するアクティビティ。 このアクティビティ内では、リスナー情報と接続要求を表示できます。
Receive Bytes アクティビティ 受信バイト アクティビティ: 2 つのエンドポイント間の接続で受信バイトの受信に関連するすべてのトレースをグループ化するアクティビティ。 このアクティビティは、http.sysなどのアクティビティ ID を伝達するトランスポート アクティビティとの関連付けに不可欠です。 このアクティビティには、中止などの接続エラーが表示されます。
メッセージ アクティビティの処理 プロセス メッセージ アクティビティ: WCF メッセージの作成に関連するトレースをグループ化するアクティビティ。 無効なエンベロープまたは形式が正しくないメッセージによるエラーが、そのアクティビティに表示されます。 このアクティビティ内では、メッセージ ヘッダーを調べて、アクティビティ ID が呼び出し元から伝達されたかどうかを確認できます。 これが当てはまる場合、プロセス アクション アクティビティ (次のアイコン) に転送するときに、呼び出し元と呼び出し先のトレース間の相関関係のために伝達されたアクティビティ ID をそのアクティビティに割り当てることもできます。
メッセージ ログ トレース プロセス アクション アクティビティ: WCF 要求に関連するすべてのトレースを 2 つのエンドポイントにグループ化するアクティビティ。 propagateActivityが構成内の両方のエンドポイントでtrueに設定されている場合、両方のエンドポイントのすべてのトレースが 1 つのアクティビティにマージされ、直接的な相関関係が得られます。 このようなアクティビティには、トランスポートまたはセキュリティ処理によるエラーが含まれます。ユーザー コードの境界まで拡張され、応答が存在する場合は戻ります。
メッセージ アクティビティの処理 ユーザー コードの実行アクティビティ: 要求を処理するためのユーザー コード トレースをグループ化するアクティビティ。

トラブルシューティング

レジストリに書き込むアクセス許可がない場合は、"svctraceviewer /register" コマンドを使用してツールを登録すると、"Microsoft サービス トレース ビューアーはシステムに登録されていません" というエラー メッセージが表示されます。 この場合は、レジストリへの書き込みアクセス権を持つアカウントを使用してログインする必要があります。

さらに、サービス トレース ビューアー ツールは、アセンブリ フォルダー内の SvcTraceViewer.exe.settings ファイルにいくつかの設定 (カスタム フィルターやフィルター オプションなど) を書き込みます。 ファイルの読み取りアクセス許可がない場合でも、ツールを起動できますが、設定を読み込むことはできません。

.etl ファイルを開くときに "1 つ以上のトレースの処理中に不明なエラーが発生しました" というエラー メッセージが表示された場合は、.etl ファイルの形式が無効であることを意味します。

アラビア語のオペレーティング システムを使用して作成されたトレース ログを開くと、時間フィルターが機能しないことに気付く場合があります。 たとえば、2005 年はアラビア暦の 1427 年に対応します。 ただし、サービス トレース ビューアー ツール フィルターでサポートされている時間範囲は、1752 より前の日付をサポートしていません。 これは、フィルターで正しい日付を選択できないことを意味する可能性があります。 この問題を解決するには、XPath 式を使用してカスタム フィルター (ビュー/カスタム フィルター) を作成し、特定の時間範囲を含めることができます。

こちらも参照ください