新聞中心
對(duì)于有經(jīng)驗(yàn)的人來(lái)說(shuō),處理事務(wù)還是比較容易的事情,但是對(duì)于向我們這讓的新手來(lái)說(shuō)WCF事物操作的實(shí)現(xiàn)會(huì)給我們編程帶來(lái)什么樣的阻力可想而知,這里我們就簡(jiǎn)單的分析一下。

創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的克山網(wǎng)站建設(shè)公司,克山接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行克山網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
#T#指定了TransactionFlow(TransactionFlowOption.Mandatory),而B(niǎo)inding卻沒(méi)有設(shè)置TransactionFlow為true 此時(shí)會(huì)出現(xiàn)類(lèi)似"Bank"協(xié)定上至少有一個(gè)操作配置為將屬性設(shè)置為"強(qiáng)制",但是通道的綁定"WSDualHttpBinding"未使用 TransactionFlowBindingElement 進(jìn)行配置。沒(méi)有 TransactionFlowBindingElement,無(wú)法使用設(shè)置為"強(qiáng)制"的 TransactionFlowAttribute 屬性。WCF事物操作錯(cuò)誤提示。
設(shè)置了[OperationBehavior(TransactionScopeRequired=true)]的操作,卻沒(méi)有在TransactionScorp中執(zhí)行,會(huì)發(fā)生類(lèi)似"服務(wù)操作需要事務(wù)成為流"的異常,截圖如下:
也許上面兩個(gè)問(wèn)題都是不是問(wèn)題的問(wèn)題,那這一點(diǎn)的確是需要我們研發(fā)人員注意的,否則我們會(huì)吃虧不少。這點(diǎn)涉及到事務(wù)和服務(wù)實(shí)例模式的聯(lián)系,我們通過(guò)學(xué)習(xí)WCF從理論到實(shí)踐:實(shí)例模式和對(duì)象生命周期 我們都學(xué)習(xí)到了實(shí)例在PerSession或者Single模式下不會(huì)每次都創(chuàng)建和消亡,這的確是一個(gè)不爭(zhēng)的真理,可在這里卻受到了挑戰(zhàn),不信你可以編寫(xiě)一個(gè)程序,即使用你最放心的Single模式,那時(shí)不是就是說(shuō)服務(wù)實(shí)例是一次創(chuàng)建,終身受用呢?下面就看看我***次編寫(xiě)范例程序后得到的運(yùn)行結(jié)果,我如下定義Bank
可在調(diào)用的時(shí)候,我卻發(fā)現(xiàn)了一個(gè)很奇怪的問(wèn)題,按照理論來(lái)說(shuō),Bank服務(wù)實(shí)例應(yīng)該只創(chuàng)建一次,可運(yùn)行的截圖卻是如下:
這個(gè)結(jié)果是不是令大家大失所望呢?這是因?yàn)閷?shí)現(xiàn)了事務(wù)的得服務(wù)還要受到TransactionAutoCompleteOnSessionClose的限制,該屬性默認(rèn)情況是true,它指示 在WCF事務(wù)操作完成之后強(qiáng)制銷(xiāo)毀服務(wù)實(shí)例,相當(dāng)于調(diào)用服務(wù)的Dispose()方法進(jìn)行釋放,盡管是PerSession或者Single都難逃它的法網(wǎng)。如果想維持實(shí)例模式,可以將其設(shè)置為false,更改后運(yùn)行效果便可如期望一致效果圖不再給出。
文章名稱(chēng):圖文演示W(wǎng)CF事物操作
本文路徑:http://www.dlmjj.cn/article/dppesih.html


咨詢(xún)
建站咨詢(xún)
