说说WCF中的可信赖会话ReliableSession
⼏天前,有朋友在上问有关WCF中可信赖会话(ReliableSession)的问题。今天重新梳理⼀下,主要⽬就是真正的弄清楚可信赖会话的作
⽤,⽅法和现实意义。
正如那位的疑惑⼀样,很多做过WCF开发的朋友,也都对ReliableSession不太理解。查阅msdn,可以发现ReliableSession是
eModel命名空间下的⼀个类。主要的作⽤如下所述:
提供对可靠会话绑定元素属性的便捷访问,这些属性是在使⽤系统提供的绑定之⼀时提供的。
包括两个重要的属性(Property)成员:
vityTimeout
⽂档中的说明是:获取或设置服务在关闭之前保持⾮活动状态的时间间隔。
说⽩了⼀点呢,就是如果服务停留多长时间没有⼯作,那我们就关闭他(嘿嘿,有点像公司对待员⼯⼀样,偶尔休息⼀下⼦,不⼲活还
⾏,时间长了,⽼板会炒你鱿鱼的哦!)
d
⽂档中说明为:获取或设置⼀个值,该值指⽰消息传递是否必须保持与消息发送⼀致的顺序。
任何⼀⽅,⽆论是客户端发送请求消息(RequestMessage),还是服务端发送相应消息(ResponMessage)。发送出来的消息都有先后
次序,⽽接收⽅在接收这些消息的时候,有时候会出现错位的现象,有的消息可能后发先⾄,⽽有的可能先发后⾄,这就影响了通讯双⽅正
常的交互。产⽣这样现象的主要的原因有两点:
1)未使⽤可靠连接协议,使得在传输层中出现类似现象
2)虽然试⽤了可靠连接协议,但在发送端或者接收端的通道中(Channel)发送或者接收有顺序问题
tcp协议⽤于解决第⼀个问题,⽽ReliabelSession的Ordered正可以解决第⼆个问题。
在WCF的缺省绑定中,只有以下⼏种⽀持或者默认打开了ReliableSession的功能,他们为:
wsHttpBinding
wsDualHttpBinding
wsFederationHttpBinding
netTcpBinding
其中netTcpBinding,wsHttpBinding,wsFederationHttpBinding中的ReliableSession属性均是RelibaleSession的⼀个派⽣类型,名
为OptionRelibaleSession,也就是提供了可选的功能。相⽐ReliableSession,OptionReliableSession仅仅多了⼀个属性:Enabled,⽤
这个属性可以指⽰是否开启可信会话。true代表开启,fal的话就不开启了,那么对InActivityTimeout和Ordered的设置将⽆效。这⾥⾯
wsHttpBinding和wsFederationHttpBinding其实都继承⾃wsHttpBindingBa,所在在讨论ReliableSession的时候,这两个Binding表
现⼀致。⽽对与wsDualHttpBinding则默认的将ReliableSession属性的Ordered设置为了true.也就是说wsDualHttpBinding是缺省⽀持
可信会话的。⽽ReliableSession的InActivityTimeout默认情况是是10分钟。
本文发布于:2022-11-24 22:05:48,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/14533.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |