那些年,我们一起学WCF--(11)自定义会话
在wcf中,我们可以自定义会话,对于自定义会话,在操作契约中需要使用如下两个属性IsInitiating,IsTerminating
IsInitiating 取得或定值,此值表示某方法是否作了可以在伺服器上初始化工作段的作 (若的工作段存在的)。
IsTerminating 获取或设置一个值,该值指示服务操作在发送答复消息(如果存在)后,是否会导致服务器关闭会话。
http://msdn.microsoft.com/zh-tw/library/system.servicemodel.description.operationdescription.isinitiating(v=vs.90).aspx
http://msdn.microsoft.com/zh-cn/magazine/system.servicemodel.operationcontractattribute.isterminating(VS.90).aspx
以上是MSDN上的解释,实际上可以简单的理解为这样
IsInitiating 为true表示创建session会话,false表示不创建session会话
IsTerminating 为true表示销毁session会话,false表示不销毁session会话
在使用这两个属性的时候,注意以下几点
1.如果所使用的通信协议不支持session,例如 basichttpbinding,此时不会产生会话,而且启动服务的时候会报异常。
2.在使用IsInitiating,IsTerminating 属性创建自定义会话时,会话模式必须设置为SessionMode=SessionMode.Required.,否则,服务启动时候将报异常