Thread.CurrentThread存储自定义数据,如userid



在.net 4中,是否可以在Thread.CurrentThread对象中存储自定义值,如userid?

我正在尝试在AfterReceiveRequest方法中的MessageInspector客户端存储wcf客户端的userid,如下所示:

request.Headers.Add(MessageHeader.CreateHeader("userid", string.Empty, userid));

在服务器端,我想在方法AfterReceiveRequest的Thread.CurrentThread中检索它。

这可能吗?

不建议使用ThreadStatic,因为WCF将随机使用线程池中的线程,并且线程回收时不会重新初始化ThreadStatic变量。此外,如果您有一个具有多个WCF调用的会话,那么同一服务实例可能会在调用之间切换线程。

您应该创建一个OperationContext扩展

请参阅当前WCF调用的数据存储位置?ThreadStatic安全吗?

最新更新