【问题标题】:When should I use OperationContextScope inside of a WCF service?何时应在 WCF 服务中使用 OperationContextScope?
【发布时间】:2010-03-18 14:40:19
【问题描述】:

我目前正在开发一项 WCF 服务,该服务与另一项服务联系以在其一些操作中提交信息。第二个服务的代理是通过强类型ProxyFactory<T> 类生成的。我没有遇到任何问题,但听说我在拨打电话时应该执行以下操作:

using (new OperationContextScope((IContextChannel)_service))
     _service.Send(message);

所以我的问题是:什么时候创建这个新的OperationContextScope 合适,为什么?

谢谢!

【问题讨论】:

    标签: c# service wcf


    【解决方案1】:

    如果您正在使用回调或者如果您想修改消息或标题,那么您需要使用OperationContextScope。您的服务可能需要在调用另一个服务时修改传出标头。

    当您建立OperationContextScope 后,您可以:

    1. 访问和修改传入和传出的邮件标头和其他属性。
    2. 访问运行时,包括调度程序、主机、通道和扩展。
    3. 访问其他类型的上下文,例如安全、实例和请求上下文。
    4. 访问与OperationContext 对象关联的通道或(如果通道实现System.ServiceModel.Channels.ISession)关联通道的会话标识符。

    您调用的另一个服务是基于会话的服务吗?如果可用,您可能需要查看其示例客户端代码或文档。

    【讨论】:

    • 明白了。因此,任何时候我想对会话信息、安全性等进行更精细的控制。我应该建立一个单独的OperationContextScope。另一个服务是基于会话的,是的。
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多