溫馨提示×

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

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

WCF事物操作的示例分析

發(fā)布時(shí)間:2021-12-13 16:53:38 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)WCF事物操作的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

指定了TransactionFlow(TransactionFlowOption.Mandatory),而Binding卻沒有設(shè)置TransactionFlow為true 此時(shí)會(huì)出現(xiàn)類似"Bank"協(xié)定上至少有一個(gè)操作配置為將屬性設(shè)置為"強(qiáng)制",但是通道的綁定"WSDualHttpBinding"未使用 TransactionFlowBindingElement 進(jìn)行配置。沒有 TransactionFlowBindingElement,無法使用設(shè)置為"強(qiáng)制"的 TransactionFlowAttribute 屬性。WCF事物操作錯(cuò)誤提示。

 WCF事物操作的示例分析 


設(shè)置了[OperationBehavior(TransactionScopeRequired=true)]的操作,卻沒有在TransactionScorp中執(zhí)行,會(huì)發(fā)生類似"服務(wù)操作需要事務(wù)成為流"的異常,截圖如下:

WCF事物操作的示例分析

也許上面兩個(gè)問題都是不是問題的問題,那這一點(diǎn)的確是需要我們研發(fā)人員注意的,否則我們會(huì)吃虧不少。這點(diǎn)涉及到事務(wù)和服務(wù)實(shí)例模式的聯(lián)系,我們通過學(xué)習(xí)WCF從理論到實(shí)踐:實(shí)例模式和對(duì)象生命周期 我們都學(xué)習(xí)到了實(shí)例在PerSession或者Single模式下不會(huì)每次都創(chuàng)建和消亡,這的確是一個(gè)不爭(zhēng)的真理,可在這里卻受到了挑戰(zhàn),不信你可以編寫一個(gè)程序,即使用你最放心的Single模式,那時(shí)不是就是說服務(wù)實(shí)例是一次創(chuàng)建,終身受用呢?下面就看看我***次編寫范例程序后得到的運(yùn)行結(jié)果,我如下定義Bank

WCF事物操作的示例分析

可在調(diào)用的時(shí)候,我卻發(fā)現(xiàn)了一個(gè)很奇怪的問題,按照理論來說,Bank服務(wù)實(shí)例應(yīng)該只創(chuàng)建一次,可運(yùn)行的截圖卻是如下:

 WCF事物操作的示例分析

這個(gè)結(jié)果是不是令大家大失所望呢?這是因?yàn)閷?shí)現(xiàn)了事務(wù)的得服務(wù)還要受到TransactionAutoCompleteOnSessionClose的限制,該屬性默認(rèn)情況是true,它指示 在WCF事務(wù)操作完成之后強(qiáng)制銷毀服務(wù)實(shí)例,相當(dāng)于調(diào)用服務(wù)的Dispose()方法進(jìn)行釋放,盡管是PerSession或者Single都難逃它的法網(wǎng)。如果想維持實(shí)例模式,可以將其設(shè)置為false,更改后運(yùn)行效果便可如期望一致效果圖不再給出。

關(guān)于“WCF事物操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

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

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

wcf
AI