Nib*_*Pig 7 c# wcf threadcontext
我有一个WCF服务,它记录每次调用数据库.稍后,如果发生异常,它也会记录到单独的数据库中.
我想要一种方法将这两个日志绑定在一起,这样我们就可以看到可能导致异常的原因.要做到这一点,我想要一些我可以为每次通话获得的唯一ID.
由于整个事情在单个线程上执行,我可以例如将线程名称设置为GUID,例如.System.Threading.Thread.CurrentThread.Name = Guid.NewGuid().ToString();
但这有点笨拙.
在网上搜索,我发现System.Threading.Thread.CurrentContext.SetProperty()
但我想知道那个背景到底是什么.它是否设计用于存储线程持续时间的属性?每个线程都是唯一的吗?
如果我同时有5个WCF呼叫,我不希望在上下文中发生什么冲突,如果它不是"每次呼叫"可以这么说.
有人可以澄清吗?
我不会使用该属性,因为微软称它仅供内部使用:
"This API supports the .NET Framework infrastructure and is not intended to be used directly from your code."
但是,你应该可以Thread Local Storage
用来做同样的事情.该链接给出了一个示例,说明如何为线程设置字符串属性.
另见http://www.c-sharpcorner.com/UploadFile/1d42da/working-with-thread-local-storagetls-in-C-Sharp/
归档时间: |
|
查看次数: |
7272 次 |
最近记录: |