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

WCF會話服務基本應用技巧分享

開發 開發工具
WCF會話服務可以幫助開發人員在客戶端每次連接時進行一個服務實例的分配。那么具體的操作步驟我們將會在這里給大家詳細介紹。

WCF開發工具是一款由微軟公司開發的建立于.Net Framework 2.0基礎上的一個.Net Framework 3.0的重要組成部分。在這里我們可以通過對WCF會話服務做一個詳細了解,以方便大家對此的掌握。

會話服務(Sessionful Service):為每次客戶端連接分配一個服務實例。類似于Net Remoting的客戶端激活模式。為每個客戶端創建一個專門的服務實例。只要會話沒有結束,該實例就不會被銷毀。 對于會話服務而言,是一個客戶端代理對應一個服務實例。也就是說,WCF會話服務中的服務是與代理相對應的,而不是對應于一個客戶端。

配置私有會話

服務實例的默認激活方式為WCF會話服務模式。我們也可以顯示配置會話服務的方式,使用[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)],具體代碼如下所示:

 

  1. [ServiceBehavior(InstanceContextModeInstanceContextMode = 
    InstanceContextMode.PerSession)]  
  2. public class WCFServicePerSession : IWCFService  
  3. {  

服用要支持會話要依靠傳輸層的持久連接,例如NetTcpBinding會保持一個連接,而與連接無關的HTTP協議是因為無法保持連接,所以BasicHttpBinding是不支持會話的

 

如果服務要跨越服務邊界,那么就要在服務契約這一層使用ServiceContact的SessionMode屬性,SessionMode為枚舉類型:

 

  1. public enum SessionMode  
  2. {  
  3. Allowed,  
  4. Required,  
  5. NotAllowed  

SessionMode.Allowed

SessionMode.Allowed是SessionMode的默認屬性,一個服務端方法被標記了SessionMode.Allowed屬性,表示它是允許傳輸會話的,但并不強制要求綁定必須支持會話,而服務的行為是采用單調還是會話這要取決于服務的配置和使用的綁定#t#

SessionMode.Required

SessionMode.Required 要求必須使用傳輸層會話,也就是說服務終結點的綁定一定得支持傳輸層會話,若要設計一個會話契約,我們還是使用SessionMode.Required而非SessionMode.Allowed

SessionMode.NotAllowed

SessionMode.NotAllowed指定契約永不使用傳輸會話,也不使用應用層會話,不管服務配置如何,總是采用單調服務方式。我們將一個契約標記SessionMode.NotAllowed以后,就不能使用NetTcpBinding等支持傳輸層會話的綁定,而如果像WSHttpBinding這樣模擬傳輸層會話則是允許的,考慮到代碼的可讀性建議在使用SessionMode.NotAllowed時總是把服務配置為單調服務

一致性配置

為了方便,如果一個契約是會話契約那么***把所有契約都配置為會話契約,要避免將單調服務于會話契約混合定義在相同的WCF會話服務類型中

編寫如下服務端代碼

 

  1. [ServiceContract(SessionModeSessionMode = SessionMode.Required)]  
  2. interface IMyContract  
  3. {  
  4. [OperationContract]  
  5. void MyMethod();  
  6. }  
  7. [ServiceBehavior(InstanceContextModeInstanceContextMode=
    InstanceContextMode.PerSession)]  
  8. class MyService : IMyContract,IDisposable  
  9. {  
  10. int m_Counter = 0;  
  11. public MyService()  
  12. {  
  13. MessageBox.Show("Counter = " + m_Counter,"MyService.MyService()");  
  14. }  
  15. public void MyMethod()  
  16. {  
  17. m_Counter++;  
  18. string sessionID = OperationContext.Current.SessionId;  
  19. Trace.WriteLine("Service session ID: " + sessionID);  
  20. MessageBox.Show("Counter = " + m_Counter,"MyService.MyMethod()");  
  21. }  
  22. public void Dispose()  
  23. {  
  24. MessageBox.Show("Thread ID = " + Thread.CurrentThread.
    ManagedThreadId,"
    MyService.Dispose()");  
  25. }  

以上就是我們為大家介紹的有關WCF會話服務的相關內容。

責任編輯:曹凱 來源: CSDN
相關推薦

2010-02-25 10:52:29

WCF響應服務

2010-03-01 15:40:04

WCF實例停用

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 16:04:31

WCF服務契約

2010-02-26 13:40:28

WCF消息頭

2010-03-01 18:11:40

WCF數據契約變更

2010-03-01 11:24:31

WCF面向服務

2010-02-06 16:16:01

C++冒泡排序

2010-02-23 15:58:57

WCF Session

2010-03-01 13:06:49

WCF繼承

2010-01-21 18:26:16

VB.NET拆分合并語

2010-02-25 15:25:19

WCF通道

2010-02-22 15:20:54

WCF WS-Disc

2010-02-22 17:21:02

WCF消息交換

2013-12-12 16:10:21

Lua腳本語言

2010-02-23 13:03:34

WCF序列化

2010-02-26 10:46:12

WCF行為擴展

2010-03-02 10:50:57

WCF元數據交換

2010-02-25 16:45:13

WCF應用技巧

2010-03-01 17:52:03

WCF選擇綁定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 粉嫩一区二区三区国产精品 | 91亚洲视频在线 | 国产成人99 | 亚洲成人精品视频 | 中文字幕日韩三级 | 久久久毛片 | 日本高清视频在线播放 | 欧美v片| 国产精品自在线 | 精品免费视频一区二区 | 91大神xh98xh系列全部 | 久久这里有精品 | 亚洲一区二区三区视频 | 国精产品一品二品国精在线观看 | 欧美成人精品一区二区三区 | 黑人成人网| 九色av | 黄色大片网 | 午夜免费福利电影 | 欧美xxxⅹ性欧美大片 | 国产黄色在线观看 | 日韩国产中文字幕 | 欧美日韩电影一区二区 | 精品国产乱码久久久久久蜜退臀 | 欧美精品一区在线观看 | 伊人青青久久 | 国产日韩精品视频 | 久久久久久久久久久国产 | 日韩精品国产精品 | 99re| 国产精品一区在线 | 中文字幕国产视频 | 国产精品免费在线 | 久久久中文 | 夜夜骑天天干 | 日韩一区二区成人 | 国产精品五区 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 亚洲免费视频播放 | 欧美视频一区二区三区 | 国产精品美女久久久久久久网站 |