IErrorHandlerを実装したWCFサービスがあります。そのHandleErrorメソッドで、TraceSourceを使用して例外をログに記録しています。
public bool HandleError(Exception error)
{
tracer.TraceEvent(TraceEventType.Error, 0, error.ToString());
return true;
}
ただし、このメソッドを入力すると、Trace.CorrelationManager.ActivityIdが、サービスメソッドの開始時に設定したものから変更されます。そのため、ランダムなアクティビティIDを含むログエントリを取得します。これにより、アクティビティトレースが台無しになります。
WCFはこれを行っていますか?なぜ?