理解WCF Session笔记

正文:

[原创]我的WCF之旅(8):WCF中的Session和Instancing Management 后感, [源代码]

在做登陆状态/聊天室/即时通讯等必须用到的东东

1.涉及基础参数

1.1. ServiceContract的SessionMode

用于Contract上的枚举, 3种:

Allowed: 指定协定永支持会话

Required:指定协定必须会话绑定,否则将引发异常。BasicHttpBinding不支持会话,所以当使用BasicHttpBinding的时候毕会异常;

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

1.2. ServiceBehavior的InstanceContextMode 

用于Service上的枚举, 3种:

PerSession: 每个Service 代理类实例化一次则建立一次session和InstanceContext

PerCall:每次通过代理类实例调用一次,建立一次session和InstanceContext

Single: 单一session模式, 不管多少个代理类实例和多少次调用,永远就一个session和InstanceContext

1.3. ServiceContract各个Action上 OperationContract的属性

做用于Contract的Action上,其中3个属性比较关键

IsInitiating : 是否实现可在服务器上启动会话(如果存在会话)的操作。
IsOneWay : 是否返回答复消息。
IsTerminating : 在发送答复消息(如果存在)后,是否会导致服务器关闭会话。

2.问题

在PerSession时候, 服务端好像在客户端退出后不会自动销毁Session, 不知道怎么回事?
不知道客户端实例化代理类后长时间不操作, 对session影响是什么?

类别: WCF
发布日期: 2009-3-15 2:26

你可能感兴趣的:(session)