這篇文章將為大家詳細講解有關WCF事物操作的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
超過10余年行業(yè)經(jīng)驗,技術領先,服務至上的經(jīng)營模式,全靠網(wǎng)絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務范圍包括了:網(wǎng)站制作、成都網(wǎng)站建設,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡托管,微信小程序,微信開發(fā),app軟件開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡營銷和我們一樣獲得訂單和生意!
指定了TransactionFlow(TransactionFlowOption.Mandatory),而Binding卻沒有設置TransactionFlow為true 此時會出現(xiàn)類似"Bank"協(xié)定上至少有一個操作配置為將屬性設置為"強制",但是通道的綁定"WSDualHttpBinding"未使用 TransactionFlowBindingElement 進行配置。沒有 TransactionFlowBindingElement,無法使用設置為"強制"的 TransactionFlowAttribute 屬性。WCF事物操作錯誤提示。
設置了[OperationBehavior(TransactionScopeRequired=true)]的操作,卻沒有在TransactionScorp中執(zhí)行,會發(fā)生類似"服務操作需要事務成為流"的異常,截圖如下:
也許上面兩個問題都是不是問題的問題,那這一點的確是需要我們研發(fā)人員注意的,否則我們會吃虧不少。這點涉及到事務和服務實例模式的聯(lián)系,我們通過學習WCF從理論到實踐:實例模式和對象生命周期 我們都學習到了實例在PerSession或者Single模式下不會每次都創(chuàng)建和消亡,這的確是一個不爭的真理,可在這里卻受到了挑戰(zhàn),不信你可以編寫一個程序,即使用你最放心的Single模式,那時不是就是說服務實例是一次創(chuàng)建,終身受用呢?下面就看看我***次編寫范例程序后得到的運行結果,我如下定義Bank
可在調用的時候,我卻發(fā)現(xiàn)了一個很奇怪的問題,按照理論來說,Bank服務實例應該只創(chuàng)建一次,可運行的截圖卻是如下:
這個結果是不是令大家大失所望呢?這是因為實現(xiàn)了事務的得服務還要受到TransactionAutoCompleteOnSessionClose的限制,該屬性默認情況是true,它指示 在WCF事務操作完成之后強制銷毀服務實例,相當于調用服務的Dispose()方法進行釋放,盡管是PerSession或者Single都難逃它的法網(wǎng)。如果想維持實例模式,可以將其設置為false,更改后運行效果便可如期望一致效果圖不再給出。
關于“WCF事物操作的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。