溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于WCF的InstanceContextMode,與會話相關(guān)

發(fā)布時間:2020-07-21 22:57:12 來源:網(wǎng)絡(luò) 閱讀:490 作者:古泥瓦 欄目:編程語言

并不是所有Binding支持會話(session)功能。

比如basicHTTP就不支持session功能。

參考文章:

http://www.codeproject.com/Articles/86007/ways-to-do-WCF-instance-management-Per-call-Per

另外參考以下文字:

以下文字來自http://www.cnblogs.com/TivonStone/archive/2011/05/18/2050407.html

SessionMode:設(shè)置會話的模式(默認(rèn)情況下是Allowed)
是客戶端代理與服務(wù)器之間的會話模式,同樣也有三種類型:Allowed-允許會話、NotAllowed-不允許會話、Required-要求會話(需要有支持會話的Binding支持,WsHttpBinding、NetTcpBinding等)

若要設(shè)計一個會話契約,我們建議使用Required 方式,而不是默認(rèn)值A(chǔ)llowed。

SessionMode.Required值要求必須使用傳輸層會話,但應(yīng)用層會話卻不是必要的,如果服務(wù)終結(jié)點的綁定沒有維持一個傳輸層會話,就不能為這樣的服務(wù)契約配置SessionMode.Required。這一約束條件會在裝載服務(wù)時進(jìn)行驗證。但是,我們?nèi)匀豢梢詫⒎?wù)配置為單調(diào)服務(wù),服務(wù)實例會在每次客戶端調(diào)用期間創(chuàng)建與銷毀實例。只有當(dāng)服務(wù)被配置為會話服務(wù)時,服務(wù)實例才會存活于整個客戶端會話中。

InstanceContextMode:指定可用來處理包含在傳入信息中的調(diào)用的服務(wù)實例數(shù)(默認(rèn)情況下是PerSession)

為服務(wù)端實現(xiàn)服務(wù)契約類的實例模式,有三種類型,分別為:

PerCall-每次服務(wù)操作調(diào)用創(chuàng)建一次,調(diào)用完后進(jìn)行銷毀;

PerSession-同一個會話期間創(chuàng)建一次,客戶端代理第一次操作(IsInitiating = true)調(diào)用創(chuàng)建,調(diào)用代理的Close方法銷毀或者調(diào)用IsTerminating服務(wù)操作銷毀;

Single-服務(wù)只會創(chuàng)建一次,服務(wù)開始時創(chuàng)建,服務(wù)完成時銷毀

(順便說一下,Session的支持是通過建立Sessionful Channel來實現(xiàn)的,但是并不是所有的Binding都支持Session,比如BasicHttpBinding就不支持Session)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI