代码之家  ›  专栏  ›  技术社区  ›  3Dave

wcf绑定-wshttpbinding使用会话?

  •  1
  • 3Dave  · 技术社区  · 15 年前

    在一个 previous thread 其中一位受访者说,使用wshttpbinding会用到一个会话。因为我在群集的IIS环境中工作,我应该禁用它吗?据我所知,会话在集群中不工作。

    如果我需要禁用这个,我该怎么做?

    1 回复  |  直到 15 年前
        1
  •  5
  •   marc_s    15 年前

    这可能是我:默认情况下,您的服务和使用的绑定将决定会话是否生效。

    如果您不做任何事情,并且使用wshttpbinding,那么您将有一个会话。如果你想避免这种情况,你应该:

    • 在适当的情况下切换到另一个协议/绑定
    • 用sessionmode属性修饰服务合同

    如果要阻止服务使用会话,可以这样做:

    [ServiceContract(Namespace="....", SessionMode=SessionMode.NotAllowed)]
    interface IYourSession
    {
    ....
    }
    

    你可以用适当的 instance context mode 属性:

    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
    class YourService : IYourService
    {
      ....
    }
    

    有了这个,你应该非常安全,不会有任何会议。

    马克