WCF会话服务方式是怎样的(wcf,编程语言)

时间:2024-04-30 05:59:04 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    WCF%E4%BC%9A%E8%AF%9D%E6%9C%8D%E5%8A%A1%E6%96%B9%E5%BC%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84

WCF会话服务(Sessionful Service):则为每次客户端连接分配一个服务实例。类似于Net Remoting的客户端激活模式。为每个客户端创建一个专门的服务实例。只要会话没有结束,该实例就不会被销毁。 对于会话服务而言,是一个客户端代理对应一个服务实例。也就是说,会话服务中的服务是与代理相对应的,而不是对应于一个客户端。

配置开发:

服务实例的默认激活方式为会话服务模式。我们也可以显示配置会话服务的方式,使用[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)],具体代码如下所示:

服务类.WCF 会话服务

服务配置[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]之后,需要在服务契约一级配置 [ServiceContract(SessionMode=SessionMode.Allowed)],服务元数据将包含SessionMode值。客户端的WCF反序列化后会包含此信息,来确定服务是否使用了会话模式,SessionMode为枚举类型:

不是所有的绑定协议都支持会话传输模式,TCP协议为传输控制协议,会与客户端维护一个连接。而HTTP为无连接状态,我们无法保证其与客户端的会话连接。

注意:
(1)WCF会话服务存在可伸缩性的问题。由于每个客户端都需要维护一个会话,需要占用较多的资源来保存服务会话状态。如果存在多个独立的客户端,则创建专门的服务实例的代价太大。
(2)WCF服务绑定协议与会话特性之间的关系见下表。
(3) 应该避免将单调服务与会话契约混合定义在相同的会话服务类型中,会话应该保证是可靠的,一个实现了会话契约的服务,它包含的所有终结点所公开的契约都应该使用支持可靠传输会话的绑定。
(4) InactivityTimeout可以配置一个新的空闲超时值,服务实例空闲时间超过这个范围时候就会终止会话。InactivityTimeout属性的默认值为10分钟。不能将该值设置为小于或等于0的值,否则会抛出ArgumentOutOfRangeException异常。

本文:WCF会话服务方式是怎样的的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:WCF服务如何操作SayHello()下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18