WCF Session開啟服務(wù)契約
WCF開發(fā)工具在實(shí)際應(yīng)用中,可以幫助我們實(shí)現(xiàn)許多比較重要的功能需求。在這篇文章中,我們會(huì)為大家詳細(xì)講解一下WCF Session的相關(guān)應(yīng)用技術(shù),并從中加深對(duì)WCF功能的了解程度。#t#
WCF Session 特點(diǎn):
由調(diào)用程序(Calling Application)發(fā)起初始化和終止操作。
由具體的 Binding 類型實(shí)現(xiàn),因此它們之間的細(xì)節(jié)可能有所不同。
不提供 ASP.NET Session 那樣的數(shù)據(jù)容器。
啟動(dòng)WCF Session的方法包括:
調(diào)用 Channel 的 Open 方法。我們可以使用 ChannelFactory 來創(chuàng)建 Channel。
調(diào)用客戶端代理對(duì)象的 Open 方法(ClientBase.Open)。
調(diào)用任何允許初始化會(huì)話服務(wù)方法(缺省情況下所有的服務(wù)方法都自動(dòng)初始化Session,也就是 IsInitiating=true)。
結(jié)束WCF Session的方法包括:
調(diào)用 Channel 的 Close 方法。
調(diào)用客戶端代理對(duì)象的 Close 方法(ClientBase.Close)。
調(diào)用任何包含 "IsTerminating=true" 聲明的服務(wù)方法(缺省情況下所有的服務(wù)方法 IsTerminating=false,需要我們顯示聲明)。
開啟服務(wù)契約的WCF Session
可以選擇的模式包括:Required、Allowed、NotAllowed。Required 表示必須使用 Session,如果 Binding 不支持,則會(huì)拋出異常;Allowed 表示如果 Binding 支持 Session 則開啟會(huì)話;NotAllowed 表示停用 Session。多數(shù) Binding 缺省就會(huì)開始 Session,而 BaseHttpBinding 不支持 Session。
- [ServiceContract(SessionModeSessionMode=SessionMode.Required)]
- public interface ICalculate
- {
- [OperationContract]
- int Add(int a, int b);
- }






