当请求到达WCF服务时使用CallContext是否安全,使用一些特定于调用的数据对其进行初始化(例如,在调用的开始使用钩子: Inspector/ContextBoundObject),然后在调用中重用它,并确保我访问的数据始终是相同的数据?
谢谢,Pawel
发布于 2010-06-25 19:29:17
如果你没有在检查器中使用它,那么它应该是安全的,但如果你没有使用远程处理或跨越AppDomain边界,那么只使用线程静态字段可能会更简单。在静态字段上放置一个ThreadStaticAttribute,它将成为每个线程中的一个单独的存储位置。
例如,如果您试图在IDispatchMessageInspector中设置值,那么它将无法工作,因为这些值将在独立于请求的线程中运行。看看OperationContext,它将提供有关WCF请求的特定于调用的信息。通过实现IExtension<OperationContext>并将其添加到extensions属性,您可以向其添加可以存储自定义数据的扩展。描述如何向OperationContext添加自定义数据的Here is a blog post。
https://stackoverflow.com/questions/3116289
复制相似问题