【发布时间】:2013-05-29 16:08:43
【问题描述】:
我有一个 WCF 服务,它记录对数据库的每次调用。稍后,如果发生异常,也会将其记录到单独的数据库中。
我想要一种将这两个日志绑定在一起的方法,以便我们查看可能导致异常的原因。为此,我需要某种可以在每次调用时获得的唯一 ID。
由于整个事情是在单个线程上执行的,例如,我可以将线程名称设置为 GUID,例如。 System.Threading.Thread.CurrentThread.Name = Guid.NewGuid().ToString(); 但这有点 hacky。
在网上搜索,我发现了System.Threading.Thread.CurrentContext.SetProperty(),但我想知道这个上下文到底是什么。它是否旨在在线程期间存储属性?每个线程是否唯一?
如果我有 5 个同时 WCF 调用,我不希望上下文中发生的事情之间存在任何冲突,如果它不是“每次调用”的话。
有人可以澄清一下吗?
【问题讨论】:
标签: c# wcf threadcontext