什么时候应该在WCF服务中使用OperationContextScope?
问题描述:
我目前正在致力于一个WCF服务,伸出另一个服务在其几个操作中提交信息。第二个服务的代理通过强类型ProxyFactory<T>
类生成。我没有经历过任何问题,但听说我应该做的事情,如进行调用时,以下几点:什么时候应该在WCF服务中使用OperationContextScope?
using (new OperationContextScope((IContextChannel)_service))
_service.Send(message);
所以我的问题是:当创建这个新OperationContextScope
合适的,为什么?
谢谢!
答
如果您使用回调或如果您要修改邮件或标题,那么您需要使用OperationContextScope
。在调用另一个服务时,您的服务可能需要修改传出标头。
当你建立OperationContextScope
那么你可以:
- 访问和修改传入和传出的消息头和其他属性。
- 访问运行时,包括调度程序,主机,通道和扩展。
- 访问其他类型的上下文,例如安全性,实例和请求上下文。
- 访问与
OperationContext
对象关联的通道或(如果通道实现System.ServiceModel.Channels.ISession
)关联的通道的会话标识符。
你打的其他服务是基于会话的服务吗?如果可能的话,您可能需要查看其示例客户端代码或文档。
Gotcha。因此,无论何时我想要更细化地控制会话信息,安全性等,我都应该建立一个单独的'OperationContextScope'。另一种服务是基于会话的,是的。 – 2010-04-14 12:48:18