代码之家  ›  专栏  ›  技术社区  ›  Brandon Linton

何时应在WCF服务中使用operationContextScope?

  •  12
  • Brandon Linton  · 技术社区  · 15 年前

    我目前正在开发一个wcf服务,它可以与另一个服务联系,以便在它的一些操作中提交信息。第二个服务的代理是通过强类型 ProxyFactory<T> 班级。我没有遇到任何问题,但听说在打电话时我应该做以下事情:

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

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

    谢谢!

    1 回复  |  直到 9 年前
        1
  •  15
  •   Mormegil    9 年前

    如果您正在使用回调,或者要修改邮件或邮件头,则需要使用 OperationContextScope . 您的服务可能需要在调用另一个服务时修改传出的头。

    当你建立 操作ContextScope 然后你可以:

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

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