下面简单地介绍一下WCF状态的应用。
WCF的状态设定是由以下两步完成的,首先要在ServiceContract里面利用参数SessionMode来使Session有效化,具体代码为:[ServiceContract(SessionMode=SessionMode.Required)];其次是在ServiceBehavior里面利用参数InstanceContextMode来设定到底使用那一种Session方式,具体代码如下:[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)。
WCF支持的SessionMode有如下三种:
◆SessionMode.Allowed:默认选项,允许但不强制使用Session。
◆SessionMode.NotAllowed:不允许使用Session。
◆SessionMode.Required:强制使用Session。
WCF支持的InstanceContextMode也有三种:
◆InstanceContextMode.PerCall:为User的每一次调用生成一个SessionID,Session生命周期:调用开始->调用结束。(注:这种方式和不使用Session功能应该是一样的)
◆InstanceContextMode.PerSession:为每一个用户生成一个SessionID。Session生命周期:客户端代理生成->客户端代理关闭。(这种方式最像原先的Session)
◆InstanceContextMode.Single:生成一个唯一的SessionID,所有用户共用,生命周期:Host创建->Host关闭。(应用设计模式中的Singleton模式,像原先的Application)
文中的实例是以PerSession为例,当然,这里的Session和原来的Session还是有一些区别的,具体如下:
(1)并没有一个显示的Session容器供存放数据用;
(2)Session的销毁和原先的Session不相同。
WCF中的Session可以在以下三种情况下销毁:
(a)利用函数销毁,如文中示例,在函数ReleaseSession()上用[OperationContract(IsTerminating=true)]表明客户端可以通过调用该函数销毁Session。
(b)客户端代理关闭,Session也会自动销毁。
(c)通过TimeOut时间销毁,默认是10分钟,这个时间客户端和服务器端都可以设定,以较短的时间为有效时间。
因此,个人认为,WCF中的Session的可控性更强一些。
在示例中还有一个问题要注意,在服务器端函数捕捉到异常之后,一定要通过throw new FaultException(ex.Message);的形式将错误抛到客户端,否则的话,客户端调用用的Channel将会被堵塞,因此就无法继续调用释放资源的函数了。
要向客户端抛异常必须设定WebConfig项
|
以上,供大家参考。
【责任编辑:碧海蓝天 TEL:(010)68476606】
| 共2页: 上一页 [1] 2 | ||
|
|
||||
| · Linux——从菜鸟到高手 · 微软出价446亿美元收购.. · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 微软Forefront企业安全.. · 如何优化IT 控制能耗 · 国际文档格式标准开战 · CISSP认证成长之路 |
· 珊瑚虫QQ作者侵权案开庭 · Windows Server 2008专.. · 隐私保护技术探讨 · 贝恩资本携手华为22亿.. · 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 · ADSL应用面面俱到 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 中间件应用技术专题 · 深入了解PGP加密技术 |
· MySQL数据库备份 · 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · SSL VPN详细知识 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · RAID——磁盘阵列基础 |
· 身份认证技术 · 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · VPN技术 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. |
|||