成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面解讀WCF服務狀態基本概念

開發 開發工具
當我們在實際開發中,都需要創建一個新的對象才能調用WCF服務狀態。這一應用方法應該如何正確的實現在本文中做了詳細介紹。

WCF服務狀態是一個比較重要的參考指標。不過在實際使用中,如何查看這一狀態,以改進自己的服務水準,是一個初學者必須要掌握的基礎。#t#

默認wcf服務的類是無狀態的,就像web service一樣,不能保存狀態信息。即每次調用WCF服務狀態都是創建一個新的對象,所以一般我們都不會在wcf服務類中添加屬性。

上面只是默認情況,因為WCF服務狀態為我們提供了配置選項,我們只需顯式指定ServiceBehaviorAttribute的InstanceContextMode的值即可實現有狀態的服務,還可以實現全局的。ServiceBehavior是一個類特性,所以我們不能在接口上應用。

InstanceContextMode是一個枚舉類型,包含PerCall,PerSession,Single三個值。從字面上我們就可以看出他們的意思。注意服務的狀態其實是與客戶端代理類有相同的生命周期,也就是說我們可以通過調用客戶端代理類的close方法來顯示清除一個服務類的狀態信息。另外,BasicHttpBinding的binding是沒有狀態的,所以我們不能用這個bind來讓服務類保持WCF服務狀態。

PerCall

每次調用都會創建新的對象,雖然我們沒有顯式創新,但代理對象會幫我們做這些。如:

服務端

  1. [ServiceBehavior(InstanceContextMode
    InstanceContextMode = Instance
    ContextMode.PerCall)]  
  2. public class EmployeeService : 
    IEmployeeService  
  3. {  
  4. private int count = 0;   
  5. #region IEmployeeService Members  
  6. public void ShowInvokeNumber()  
  7. {  
  8. count++;  
  9. Console.WriteLine("count = {0}", count);  
  10. }  
  11. #endregion  

 

客戶端

  1. EmployeeServiceProxy proxy = 
    new EmployeeServiceProxy
    ("netEmployeeService");  
  2. proxy.ShowInvokeNumber();  
  3. proxy.ShowInvokeNumber();  
  4. proxy.ShowInvokeNumber(); 

雖然我們只創建了一個代理對象,服務器端的對象會在每次調用完后進行釋放,當再次調用時,會創建一個新的對象。

PerSession

簡單的說它每個客戶端共享一個對象,只在***次調用時創建。

Single

是所以客戶端共享一個對象。

通過我提供的演示demo,可以很清楚看到WCF服務狀態中的差別。注意服務器端的輸出

percall輸出的是

  1. count = 1 
  2. count = 1 
  3. count = 1 

persession輸出的是

  1. count = 1 
  2. count = 2 
  3. count = 3 

如果我們多啟動一個客戶端則會有增加如下輸出

  1. count = 1 
  2. count = 2 
  3. count = 3 

single輸出的是

  1. count = 1 
  2. count = 2 
  3. count = 3 

增加一個客戶端,輸入變為

  1. count = 4 
  2. count = 5 
  3. count = 6 

還有一個OperationBehavior應用于WCF服務狀態操作上的特性我們需要注意,它的ReleaseInstanceMode指定了4個枚舉值。默認是None,還有AfterCall,BeforeAndAfterCall,BeforeCall,如果應用了這個特性,則對象在調用這個方法時會檢查OperationBehavior特性的ReleaseInstanceMode的值,它如果它指定為非none,則在調用根據設置的值來在調用前或后釋放該對象。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-03-01 16:25:07

WCF體系架構

2010-02-23 16:32:29

WCF服務

2010-03-01 16:41:04

WCF數據表

2010-03-02 16:22:31

WCF狀態應用

2009-12-21 10:27:52

WCF基本概念

2010-02-24 17:17:04

WCF宿主環境

2010-03-02 13:14:38

WCF MSMQ隊列

2009-12-21 15:33:07

WCF集合元素

2010-03-01 14:50:30

WCF行為類型

2010-03-01 18:04:35

WCF配置綁定

2010-02-25 14:46:31

2010-03-02 11:10:43

WCF標準終結點

2009-12-21 14:37:14

2009-12-21 16:52:02

WCF序列化

2010-03-01 17:57:11

WCF緩存機制

2010-01-25 10:57:57

Android系統應用

2011-03-28 11:05:17

ODBC

2021-11-02 08:41:44

Kubernetes Nginx部開源

2010-03-01 16:04:31

WCF服務契約

2010-07-02 11:48:30

RS-232C協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天综合日日夜夜 | 国产成人99久久亚洲综合精品 | 国产一区二区三区免费 | 一区二区三区亚洲 | 一级做a爰片久久毛片免费看 | 国产精品爱久久久久久久 | 国产一区二区三区免费观看视频 | 一区二区三区在线播放 | h视频在线免费 | 国产精品一区二区三区久久 | 免费一级淫片aaa片毛片a级 | 成人在线观看免费视频 | 成人激情视频在线观看 | 超碰最新在线 | 91久久国产综合久久 | 欧美日韩福利视频 | 亚洲精品小视频在线观看 | 中文字幕亚洲精品 | 欧产日产国产精品视频 | 成人黄视频在线观看 | 国产综合视频 | 国产精品成人在线播放 | 亚洲91视频| 成人免费观看视频 | av中文天堂| 亚洲精品久久国产高清情趣图文 | 五月天综合影院 | 欧美一区二区 | 国产一区二区三区视频免费观看 | 亚洲天堂中文字幕 | 色狠狠一区 | 亚洲区视频 | 亚洲国产成人精品女人 | 欧美日韩三区 | 天天躁日日躁aaaa视频 | 色精品视频 | 噜久寡妇噜噜久久寡妇 | 亚洲欧美在线一区 | 欧美美乳 | 日本爱爱 | 91精品国产综合久久香蕉922 |