我有一个带有 IErrorHandler 实现的 WCF 服务。在其 HandleError 方法中,我使用 TraceSource 记录异常:
public bool HandleError(Exception error)
{
tracer.TraceEvent(TraceEventType.Error, 0, error.ToString());
return true;
}
但是,当输入此方法时,Trace.CorrelationManager.ActivityId 已从我在服务方法开始时设置的更改。所以我得到一个带有一些随机活动 ID 的日志条目,这会破坏活动跟踪。
WCF 是这样做的吗?为什么?