您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關WCF事物操作的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
指定了TransactionFlow(TransactionFlowOption.Mandatory),而Binding卻沒有設置TransactionFlow為true 此時會出現類似"Bank"協定上至少有一個操作配置為將屬性設置為"強制",但是通道的綁定"WSDualHttpBinding"未使用 TransactionFlowBindingElement 進行配置。沒有 TransactionFlowBindingElement,無法使用設置為"強制"的 TransactionFlowAttribute 屬性。WCF事物操作錯誤提示。
設置了[OperationBehavior(TransactionScopeRequired=true)]的操作,卻沒有在TransactionScorp中執行,會發生類似"服務操作需要事務成為流"的異常,截圖如下:
也許上面兩個問題都是不是問題的問題,那這一點的確是需要我們研發人員注意的,否則我們會吃虧不少。這點涉及到事務和服務實例模式的聯系,我們通過學習WCF從理論到實踐:實例模式和對象生命周期 我們都學習到了實例在PerSession或者Single模式下不會每次都創建和消亡,這的確是一個不爭的真理,可在這里卻受到了挑戰,不信你可以編寫一個程序,即使用你最放心的Single模式,那時不是就是說服務實例是一次創建,終身受用呢?下面就看看我***次編寫范例程序后得到的運行結果,我如下定義Bank
可在調用的時候,我卻發現了一個很奇怪的問題,按照理論來說,Bank服務實例應該只創建一次,可運行的截圖卻是如下:
這個結果是不是令大家大失所望呢?這是因為實現了事務的得服務還要受到TransactionAutoCompleteOnSessionClose的限制,該屬性默認情況是true,它指示 在WCF事務操作完成之后強制銷毀服務實例,相當于調用服務的Dispose()方法進行釋放,盡管是PerSession或者Single都難逃它的法網。如果想維持實例模式,可以將其設置為false,更改后運行效果便可如期望一致效果圖不再給出。
關于“WCF事物操作的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。