實例模型圖分析WCF單調服務
WCF還是比較常用的,于是我研究了一下WCF單調服務,在WCF分布式開發必備知識(2):.Net Remoting這篇文章里我已經介紹過了Net Remoting相關的概念,其中也包括Net Remoting的激活方式SingleTon模式、SingleCall模式、客戶端激活方式。
#T#其實WCF服務的激活方式也與此相似。服務激活方式也是WCF借鑒Net Remoting的一個明顯的例子。Net Remoting相關的概念大家可以查閱WCF分布式開發必備知識(2):.Net Remoting這篇文章。 下面我們就來詳細的介紹WCF服務激活類型相關的知識點。在這里拿出來和大家分享一下,希望對大家有用,首先來介紹的是WCF單調服務,
WCF支持三種實例激活的類型:
◆單調服務(Per-Call Service):每次的客戶端請求分配一個新的服務實例。類似于Net Remoting的SingleCall模式;
◆會話服務(Sessionful Service):則為每次客戶端連接分配一個服務實例。類似于Net Remoting的客戶端激活模式;
◆單例服務(Singleton Service):所有的客戶端會為所有的連接和激活對象共享一個相同的服務實例。類似于Net Remoting的SingleTon模式。
這里的服務激活模式是由我們定義的服務的上下文模式InstanceContextMode屬性來配置的,其代碼如下:
- public enum InstanceContextMode
- {
- PerSession,
- PerCall,
- Single
- }
WCF單調服務Call Service)
WCF單調服務(Per-Call Service):每次的客戶端請求分配一個新的服務實例。服務實例的生存周期緊緊限制于一次調用的開始與結束之間。客戶端的每次請求都會產生新的服務實例來響應這個調用。類似于Net Remoting的SingleCall模式。 執行步驟如下:
◆客戶端調用代理,代理將調用轉發給服務。
◆WCF創建一個服務實例,然后調用服務實例的方法。
◆當方法調用返回時,如果對象實現了IDisposable接口,WCF將調用IDisposable.Dispose()方法。
◆客戶端調用代理,代理將調用轉發給服務。
◆WCF創建一個對象,然后調用對象的方法。
單調服務的實例化模型圖: