WCF开发工具在实际应用中,可以帮助我们实现许多比较重要的功能需求。在这篇文章中,我们会为大家详细讲解一下WCF Session的相关应用技术,并从中加深对WCF功能的了解程度。#t#
WCF Session 特点:
由调用程序(Calling Application)发起初始化和终止操作。
由具体的 Binding 类型实现,因此它们之间的细节可能有所不同。
不提供 ASP.NET Session 那样的数据容器。
启动WCF Session的方法包括:
调用 Channel 的 Open 方法。我们可以使用 ChannelFactory 来创建 Channel。
调用客户端代理对象的 Open 方法(ClientBase.Open)。
调用任何允许初始化会话服务方法(缺省情况下所有的服务方法都自动初始化Session,也就是 IsInitiating=true)。
结束WCF Session的方法包括:
调用 Channel 的 Close 方法。
调用客户端代理对象的 Close 方法(ClientBase.Close)。
调用任何包含 "IsTerminating=true" 声明的服务方法(缺省情况下所有的服务方法 IsTerminating=false,需要我们显示声明)。
开启服务契约的WCF Session
可以选择的模式包括:Required、Allowed、NotAllowed。Required 表示必须使用 Session,如果 Binding 不支持,则会抛出异常;Allowed 表示如果 Binding 支持 Session 则开启会话;NotAllowed 表示停用 Session。多数 Binding 缺省就会开始 Session,而 BaseHttpBinding 不支持 Session。
- [ServiceContract(SessionModeSessionMode=SessionMode.Required)]
- public interface ICalculate
- {
- [OperationContract]
- int Add(int a, int b);
- }