日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF狀態(tài)應(yīng)用基本概念簡單描述

在WCF開發(fā)工具中,對于狀態(tài)的應(yīng)用是一個比較基礎(chǔ)的應(yīng)用技術(shù)。我們需要積累這方面的經(jīng)驗來達到一個熟練應(yīng)用的地步。在接下來的文章中,我們首先為大家介紹一下WCF狀態(tài)應(yīng)用的一些基本概念。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),雙牌企業(yè)網(wǎng)站建設(shè),雙牌品牌網(wǎng)站建設(shè),網(wǎng)站定制,雙牌網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,雙牌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

WCF狀態(tài)應(yīng)用的設(shè)定是由以下兩步完成的,首先要在ServiceContract里面利用參數(shù)SessionMode來使Session有效化,具體代碼為

 
 
 
  1. [ServiceContract(SessionModeSessionMode=SessionMode.Required)];

其次是在ServiceBehavior里面利用參數(shù)InstanceContextMode來設(shè)定到底使用那一種Session方式,具體代碼如下

 
 
 
  1. [ServiceBehavior(InstanceContextModeInstanceContextMode=
    InstanceContextMode.PerSession);

WCF支持的SessionMode有如下三種:#t#

◆SessionMode.Allowed:默認選項,允許但不強制使用Session。

◆SessionMode.NotAllowed:不允許使用Session。

◆SessionMode.Required:強制使用Session。

WCF支持的InstanceContextMode也有三種:

◆InstanceContextMode.PerCall:為User的每一次調(diào)用生成一個SessionID,Session生命周期:調(diào)用開始->調(diào)用結(jié)束。(注:這種方式和不使用Session功能應(yīng)該是一樣的)

◆InstanceContextMode.PerSession:為每一個用戶生成一個SessionID。Session生命周期:客戶端代理生成->客戶端代理關(guān)閉。(這種方式最像原先的Session)

◆InstanceContextMode.Single:生成一個唯一的SessionID,所有用戶共用,生命周期:Host創(chuàng)建->Host關(guān)閉。(應(yīng)用設(shè)計模式中的Singleton模式,像原先的Application)

WCF狀態(tài)應(yīng)用的實例是以PerSession為例,當(dāng)然,這里的Session和原來的Session還是有一些區(qū)別的,具體如下:

(1)并沒有一個顯示的Session容器供存放數(shù)據(jù)用;

(2)Session的銷毀和原先的Session不相同。

WCF中的Session可以在以下三種情況下銷毀:

(a)利用函數(shù)銷毀,如文中示例,在函數(shù)ReleaseSession()上用[OperationContract(IsTerminating=true)]表明客戶端可以通過調(diào)用該函數(shù)銷毀Session。

(b)客戶端代理關(guān)閉,Session也會自動銷毀。

(c)通過TimeOut時間銷毀,默認是10分鐘,這個時間客戶端和服務(wù)器端都可以設(shè)定,以較短的時間為有效時間。
因此,個人認為,WCF中的Session的可控性更強一些。

在示例中還有一個問題要注意,在服務(wù)器端函數(shù)捕捉到異常之后,一定要通過throw new FaultException(ex.Message);的形式將錯誤拋到客戶端,否則的話,客戶端調(diào)用用的Channel將會被堵塞,因此就無法繼續(xù)調(diào)用釋放資源的函數(shù)了。

要向客戶端拋異常必須設(shè)定WebConfig項,具體代碼如下:

 
 
 
  1. < configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  2. < system.serviceModel>< services>
  3. < !-- Before deployment, you should remove the returnFaults 
    behavior configuration to avoid disclosing information in exception messages -->
  4. < service name="MyService" behaviorConfiguration="SessionTrans">
  5. < endpoint contract="IMyService" binding="wsHttpBinding"/>< /service>
  6. < /services>< behaviors>
  7. < serviceBehaviors>
  8. < behavior name="SessionTrans" returnUnknownExceptionsAsFaults="True">
  9. < serviceMetadata httpGetEnabled="true" />
  10. < serviceDebug includeExceptionDetailInFaults="true" />
  11. < /behavior>< /serviceBehaviors>< /behaviors>< /system.serviceModel>
  12. < system.web>< compilation debug="true"/>< /system.web>< /configuration> 

以上介紹的WCF狀態(tài)應(yīng)用的相關(guān)知識供大家學(xué)習(xí)參考。


網(wǎng)頁標(biāo)題:WCF狀態(tài)應(yīng)用基本概念簡單描述
URL地址:http://www.dlmjj.cn/article/djdiosh.html