WCF單調服務開發配置注意事項總結
在WCF中,有很多比較重要的知識內容,對于初學者來說要想全部掌握這些內容,還是需要先從基礎知識開始學起。接下來我們先為大家介紹一下有關WCF單調服務的基本內容,以方便大家了解。#t#
【1.1】WCF單調服務基本概念
單調服務(Per-Call Service):每次的客戶端請求分配一個新的服務實例。服務實例的生存周期緊緊限制于一次調用的開始與結束之間??蛻舳说拿看握埱蠖紩a生新的服務實例來響應這個調用。類似于Net Remoting的SingleCall模式。 執行步驟如下:
1. 客戶端調用代理,代理將調用轉發給服務。
2. WCF創建一個服務實例,然后調用服務實例的方法。
3. 當方法調用返回時,如果對象實現了IDisposable接口,WCF將調用IDisposable.Dispose()方法。
4. 客戶端調用代理,代理將調用轉發給服務。
5. WCF創建一個對象,然后調用對象的方法。
【1.2】WCF單調服務開發配置:
單調服務開發配置十分簡單,我們使用[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]配置服務屬性完成。這樣的WCF服務模式為單調模式,WCF框架對自動更具設置的屬性來決定具體的服務激活類型。代碼如下所示:
- [ServiceBehavior(InstanceContextModeInstanceContextMode=
InstanceContextMode.PerCall)]- public class WCFServicePerCall : IWCFService,IDisposable
- {
- }
【1.3】WCF單調服務在使用中需要注意:
(1)[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]特性只能應用到類上。
(2) 如果使用了昂貴的資源,如數據庫連接等非托管資源,繼承IDisposable接口, //實現接口定義的方法Dispose()方法顯示釋放資源。但是也有弊端,頻繁地創建與銷毀實例,仍然會對性能造成一定的影響。
(3)對于WCF服務而言,單調服務可以算是***的實例激活模式。 單調服務的一個最重要優勢在于它能夠節省資源,支持系統的可伸縮性。另外在事務編程與隊列服務中優勢更為明顯,在事務編程中新建服務實例,減少實例狀態的同步;而消息隊列,單調服務能夠建立服務實例與隊列消息之間的簡單映射。詳細信息會在后續文章中介紹。