WCF サービスと Event Tracing for Windows

ETWTracing サンプルでは、Windows Communication Foundation (WCF) の分析トレースを使用して Windows イベント トレーシング (ETW) でイベントを出力する方法を示します。 分析トレースは、WCF スタック内のキー ポイントで出力されるイベントです。これにより、運用環境で WCF サービスをトラブルシューティングできます。

WCF サービスの分析トレースは、有効にしてもパフォーマンスに最小限の影響しか及ぼさないため、運用環境で使用することができます。 これらのトレースは、ETW セッションにイベントとして出力されます。

このサンプルには、サービスのイベントをイベント ログに出力する基本的な WCF サービスが含まれています。イベント ログは、イベント ビューアーを使用して表示できます。 また、WCF サービスのイベントをリッスンする専用の ETW セッションを開始することもできます。 サンプルには、バイナリ ファイルにイベントを格納する専用の ETW セッションを作成するためのスクリプトが含まれています。このバイナリ ファイルもイベント ビューアーを使用して読み取ることができます。

このサンプルを使用するには

  1. Visual Studio を使用して、EtwAnalyticTraceSample ソリューション ファイルを開きます。

  2. ソリューションをビルドするには、Ctrl+Shift+B キーを押します。

  3. ソリューションを実行するには、Ctrl キーを押しながら F5 キーを押します。

    Web ブラウザーで、 [Calculator.svc] をクリックします。 サービスの WSDL ドキュメントの URI がブラウザーに表示されます。 その URI をコピーします。

    既定では、ポート 1378 (http://localhost:1378/Calculator.svc) でサービスによる要求のリッスンが開始されます。

  4. WCF テスト クライアント (WcfTestClient.exe) を実行します。

    WCF テスト クライアント (WcfTestClient.exe) は \<Visual Studio Install Dir>\Common7\IDE\WcfTestClient.exe にあります。

  5. WCF テスト クライアントで、 [ファイル][サービスの追加] の順に選択して、サービスを追加します。

    入力ボックスにエンドポイントのアドレスを追加します。 既定では、 http://localhost:1378/Calculator.svcです。

  6. イベント ビューアー アプリケーションを開きます。

    サービスを呼び出す前に、イベント ビューアーを起動し、WCF サービスから生成された追跡イベントをイベント ログでリッスンしていることを確認します。

  7. [スタート] ボタンをクリックし、 [管理ツール] をポイントしてから [イベント ビューアー] をクリックします。 [分析] および [デバッグ] ログを有効にします。

  8. イベント ビューアーのツリー ビューで、 [イベント ビューアー][アプリケーションとサービス ログ][Microsoft][Windows][アプリケーション サーバー - アプリケーション] の順に移動します。 [アプリケーション サーバー - アプリケーション] を右クリックし、 [表示][分析およびデバッグ ログの表示] の順に選択します。

    [分析およびデバッグ ログの表示] オプションがオンになっていることを確認します。

  9. [分析] ログを有効にします。

    イベント ビューアーのツリー ビューで、 [イベント ビューアー][アプリケーションとサービス ログ][Microsoft][Windows][アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログの有効化] を選択します。

サービスをテストするには

  1. WCF テスト クライアントに戻り、[Divide] をダブルクリックして、分母が 0 に指定された既定値をそのまま使用します。

    分母が 0 の場合、サービスからエラーがスローされます。

  2. サービスから出力されたイベントを確認します。

    イベント ビューアーに戻り、 [イベント ビューアー][アプリケーションとサービス ログ][Microsoft][Windows][アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [更新] を選択します。

    WCF 分析トレースのイベントがイベント ビューアーに表示されます。 サービスからエラーがスローされたため、イベント ビューアーにエラー トレース イベントが表示されていることに注意してください。

  3. 手順 1. と 2. を繰り返します。ただし、今度は有効な入力値を指定します。 N2 パラメーターの値は、0 以外であれば任意の数字でかまいません。

    分析チャネルを更新して、WCF イベントにエラー イベントが含まれていないことを確認します。

このサンプルでは、WCF サービスから出力される分析トレース イベントを示します。

クリーンアップするには (省略可能)

  1. イベント ビューアーを開きます。

  2. [イベント ビューアー][アプリケーションとサービス ログ][Microsoft][Windows][アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログの無効化] を選択します。

  3. [イベント ビューアー][アプリケーションとサービス ログ][Microsoft][Windows][アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログのクリア] を選択します。

  4. [クリア] オプションを選択してイベントをクリアします。

関連項目