WCF サービスと Event Tracing for Windows
ETWTracing サンプルでは、Windows Communication Foundation (WCF) の分析トレースを使用して Windows イベント トレーシング (ETW) でイベントを出力する方法を示します。 分析トレースは、WCF スタック内のキー ポイントで出力されるイベントです。これにより、運用環境で WCF サービスをトラブルシューティングできます。
WCF サービスの分析トレースは、有効にしてもパフォーマンスに最小限の影響しか及ぼさないため、運用環境で使用することができます。 これらのトレースは、ETW セッションにイベントとして出力されます。
このサンプルには、サービスのイベントをイベント ログに出力する基本的な WCF サービスが含まれています。イベント ログは、イベント ビューアーを使用して表示できます。 また、WCF サービスのイベントをリッスンする専用の ETW セッションを開始することもできます。 サンプルには、バイナリ ファイルにイベントを格納する専用の ETW セッションを作成するためのスクリプトが含まれています。このバイナリ ファイルもイベント ビューアーを使用して読み取ることができます。
このサンプルを使用するには
Visual Studio を使用して、EtwAnalyticTraceSample ソリューション ファイルを開きます。
ソリューションをビルドするには、Ctrl+Shift+B キーを押します。
ソリューションを実行するには、Ctrl キーを押しながら F5 キーを押します。
Web ブラウザーで、 [Calculator.svc] をクリックします。 サービスの WSDL ドキュメントの URI がブラウザーに表示されます。 その URI をコピーします。
既定では、ポート 1378 (
http://localhost:1378/Calculator.svc
) でサービスによる要求のリッスンが開始されます。WCF テスト クライアント (WcfTestClient.exe) を実行します。
WCF テスト クライアント (WcfTestClient.exe) は
\<Visual Studio Install Dir>\Common7\IDE\WcfTestClient.exe
にあります。WCF テスト クライアントで、 [ファイル] 、 [サービスの追加] の順に選択して、サービスを追加します。
入力ボックスにエンドポイントのアドレスを追加します。 既定では、
http://localhost:1378/Calculator.svc
です。イベント ビューアー アプリケーションを開きます。
サービスを呼び出す前に、イベント ビューアーを起動し、WCF サービスから生成された追跡イベントをイベント ログでリッスンしていることを確認します。
[スタート] ボタンをクリックし、 [管理ツール] をポイントしてから [イベント ビューアー] をクリックします。 [分析] および [デバッグ] ログを有効にします。
イベント ビューアーのツリー ビューで、 [イベント ビューアー] 、 [アプリケーションとサービス ログ] 、 [Microsoft] 、 [Windows] 、 [アプリケーション サーバー - アプリケーション] の順に移動します。 [アプリケーション サーバー - アプリケーション] を右クリックし、 [表示] 、 [分析およびデバッグ ログの表示] の順に選択します。
[分析およびデバッグ ログの表示] オプションがオンになっていることを確認します。
[分析] ログを有効にします。
イベント ビューアーのツリー ビューで、 [イベント ビューアー] 、 [アプリケーションとサービス ログ] 、 [Microsoft] 、 [Windows] 、 [アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログの有効化] を選択します。
サービスをテストするには
WCF テスト クライアントに戻り、[
Divide
] をダブルクリックして、分母が 0 に指定された既定値をそのまま使用します。分母が 0 の場合、サービスからエラーがスローされます。
サービスから出力されたイベントを確認します。
イベント ビューアーに戻り、 [イベント ビューアー] 、 [アプリケーションとサービス ログ] 、 [Microsoft] 、 [Windows] 、 [アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [更新] を選択します。
WCF 分析トレースのイベントがイベント ビューアーに表示されます。 サービスからエラーがスローされたため、イベント ビューアーにエラー トレース イベントが表示されていることに注意してください。
手順 1. と 2. を繰り返します。ただし、今度は有効な入力値を指定します。
N2
パラメーターの値は、0 以外であれば任意の数字でかまいません。分析チャネルを更新して、WCF イベントにエラー イベントが含まれていないことを確認します。
このサンプルでは、WCF サービスから出力される分析トレース イベントを示します。
クリーンアップするには (省略可能)
イベント ビューアーを開きます。
[イベント ビューアー] 、 [アプリケーションとサービス ログ] 、 [Microsoft] 、 [Windows] 、 [アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログの無効化] を選択します。
[イベント ビューアー] 、 [アプリケーションとサービス ログ] 、 [Microsoft] 、 [Windows] 、 [アプリケーション サーバー - アプリケーション] の順に移動します。 [分析] を右クリックし、 [ログのクリア] を選択します。
[クリア] オプションを選択してイベントをクリアします。