WCF InstanceContextMode

今天看了网上几篇文章,又查了下有关WCF的书,总结下ServiceBehavior里的InstanceContextMode,以备日后忘记了可以查阅;

PerCall:每次任何一个主机任何一次对服务的请求,都将创建新的InstanceContext,并且调用后将被回收,WCF不会断开与客户端(通过客户端的代理)的连接,这比创建实例与连接所消耗的资源要少得多,服务的实例会被销毁,但是连接不断开,体现在SessionID不变。

PerSession:为每一个客户端代理创建一个服务实例,当调用Close关闭或者调用某些标识了IsTerminating=True的方法后关闭会话,销毁实例并回收

Singlton:服务只创建一个实例

 

WCF中的会话:每次客户端连接分配一个服务实例,会话结束后,实例就被销毁

 

顺便也总结了下ServiceContract的几个属性

SessionMode.Allowed:指定当传入绑定支持会话时,协定也支持会话(默认值)

SessionMode.Required:指定协定需要会话绑定。如果绑定并未配置为支持会话,则将引发异常

SessionMode.NotAllowed:指定协定永不支持启动会话的绑定

 

由此又总结了下OperationContract的几个属性

Isinitating:如果标识为True,那么第一次调用这个方法时候将创建会话,而且次方法必须在调用其它方法前调用,否则将出错

IsOneWay:指定客户端与服务之间的通信是单工或者双工,默认为False,即双工,将返回服务器应答

IsTerminating:与Isinitating相反,调用标识有IsTerminating=True的方法后,将关闭会话,销毁实例

 

Session时间在Web.conf里面节点下设置

<binding name="wsHttp">

<reliableSession enabled="true" inactivityTimeout="00:00:30"/>

</binding>

 

转载于:https://www.cnblogs.com/lyqA/archive/2010/05/19/1739238.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值