WCF绑定-wsHttpBinding使用会话?

3Da*_*ave 1 iis session wcf-binding wshttpbinding

之前的一个帖子中,一位受访者表示使用wsHttpBinding使用了一个会话.由于我在群集IIS环境中工作,我应该禁用它吗?据我所知,会话在群集中不起作用.

如果我需要禁用此功能,我该如何解决?

mar*_*c_s 5

那可能是我:-)默认情况下,您的服务和使用的绑定将决定会话是否发挥作用.

如果你不做任何事情,并使用wsHttpBinding,你将有一个会话.如果你想避免这种情况,你应该:

  • 在适当的地方切换到另一个协议/绑定
  • 使用SessionMode属性装饰您的服务合同

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

[ServiceContract(Namespace="....", SessionMode=SessionMode.NotAllowed)]
interface IYourSession
{
....
}
Run Code Online (Sandbox Code Playgroud)

并且您可以使用适当的实例上下文模式属性来装饰您的服务类:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
class YourService : IYourService
{
  ....
}
Run Code Online (Sandbox Code Playgroud)

有了这个,你应该在安全方面,而不是任何会话.

  • +1表示有用的默认wsHttpBinding信息.接口应该是`interface IYourService`而不是`IYourSession`吗?我试图把两个样本连在一起:)谢谢! (2认同)