.NET Framework 4.6.1 の分析トレースは、Event Tracing for Windows (ETW) を基盤とするトレース機能です。詳細度が低く、パフォーマンスに優れています。 ETW は、カーネル レベルで実行され、トレース操作のオーバーヘッドを大幅に削減します。 ユーザー モードおよびカーネル モードのイベントを効率よくバッファーし、サービスの再起動を必要とすることなく、動的にログを有効化できます。 トレース データは、生成および受信されると、イベント ログから確認できます。
ETW の詳細については、「Improve Debugging and Performance Tuning with ETW」を参照してください。
Windows のシステム、セキュリティ、およびアプリケーション イベント ログによるアプリケーションの分析のほかに、Windows Vista および Windows Server 2008 では、最上位ノードの [アプリケーションとサービス ログ] の下にログが追加されています。 これらの新しいログは、システム全体に影響するグローバルなイベント (セキュリティ イベント ログで記録されるようなイベントなど) ではなく、特定のアプリケーションやコンポーネントのイベントを格納することを目的としています。 .NET Framework 4.6.1 では、WCF トレース イベント、WCF メッセージ ログ、および WF 追跡レコードのログを [アプリケーションとサービス ログ] にまとめ、相互に関連付けています。
以下のセクションでは、WCF 分析トレースに適用される概念と機能について説明します。
WCF 診断設定の有効化
WCF 診断は、<system.serviceModel><diagnostics>
構成セクション内で有効にします。
<system.serviceModel>
<diagnostics>
Web でホストされる IIS 仮想アプリケーションの WCF 診断の設定は、アプリケーションの Web.config ファイルで有効にします。 または、アプリケーション内のサブディレクトリに Web.config ファイルを作成することもできます。 この方法では、設定がサブディレクトリ内のすべてのサービスに適用されます。 診断設定が、アプリケーション内のすべてのサービスに対して一貫して初期化されるようにするには、これらの設定を、アプリケーション内の個別のサブディレクトリの 1 つではなく、アプリケーション ディレクトリ内の Web.config ファイルに含める必要があります。
チャンネル
ETW の場合、ソフトウェア コンポーネントは、チャネルを使用することで、トレース イベントをユーザーの種類に応じて振り分けることができます。 たとえば、システム管理者向けのイベントを 1 つのチャネルに送信し、アプリケーション開発者にとって重要なイベントを別のチャネルに送信できます。 チャネルには名前が付けられ、Windows に登録されるので、ユーザーは、特定のチャネルのイベントをイベント ビューアーを使用して確認できます。
.NET Framework 4.6.1 の WCF の分析トレース機能では、Microsoft-Windows-Application-Server-Applications チャネルに書き込みます。 このチャネルは、運用中の WCF サービスの状態を監視する必要があるユーザー向けに設計されています。 このチャネルでは、さまざまな状態監視およびトラブルシューティング シナリオで使用できるイベントがいくつか定義されています。
メッセージがイベント ログで正常にデコードされるように Event Tracing for Windows マニファストを有効にするために、次のようにコマンド ラインで ServiceModelReg ツールを使用します。
ServiceModelReg.exe -i -c:etw
動的構成
ETW のインフラストラクチャでは、標準の Windows ツールを使用して動的にトレースを有効化および構成できます。 詳細については、「分析トレースの動的な有効化」を参照してください。
メッセージ フローのトレース
メッセージ フローのトレースを有効にする方法の詳細については、「メッセージ フローのトレースの構成」を参照してください。
キーワード
キーワードは、トレース メッセージをフィルター処理するため、およびイベントを生成した .NET Framework コンポーネントを定義するために使用されます。 詳細については、「分析トレースの動的な有効化」を参照してください。