日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WCF之分布式事务

發(fā)布時(shí)間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF之分布式事务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先講解一下事務(wù)的幾個(gè)很重要的性質(zhì)。

?

Code
WCF?對(duì)分布事務(wù)提供了良好的支持,這使得我們可以協(xié)調(diào)多個(gè)服務(wù)之間的數(shù)據(jù)完整性。通過?TransactionFlowAttribute、ServiceBehaviorAttribute?和?OperationBehaviorAttribute?這三個(gè)特性,我們可以很好地控制事務(wù)的相關(guān)細(xì)節(jié)。

TransactionFlowAttribute?的構(gòu)造參數(shù)?
"TransactionFlowOption?transactions"?允許我們?cè)趶?qiáng)制事務(wù)(Mandatory)、允許參與事務(wù)(Allowed)和禁止事務(wù)(NotAllowed)間進(jìn)行選擇。

ServiceBehaviorAttribute?提供了多個(gè)屬性參與事務(wù)控制。TransactionAutoCompleteOnSessionClose?指示當(dāng)會(huì)話(Session)結(jié)束時(shí)是否自動(dòng)提交事務(wù)(Complete);?ReleaseServiceInstanceOnTransactionComplete?指示事務(wù)提交后是否釋放服務(wù)實(shí)例對(duì)象;?TransactionIsolationLevel?用于設(shè)置事務(wù)隔離方式(isolation?level);?TransactionTimeout?用于設(shè)置事務(wù)超時(shí)時(shí)間。

OperationBehaviorAttribute?的?TransactionScopeRequired?屬性是?WCF?分布事務(wù)所必需使用的,它表明服務(wù)方法必須在事務(wù)范圍(transaction?scope)內(nèi)執(zhí)行。如果不添加該標(biāo)記,則意味著服務(wù)方法不參與到事務(wù)中。TransactionAutoComplete?指示方法正常結(jié)束后自動(dòng)提交事務(wù)。

?

?

采用WShttp形式。采用添加服務(wù)引用的方式。

?

1 在服務(wù)器端配置文件中,要加下如下代碼。 放在? <system.serviceModel>里面

Code
??<bindings>
??????
<wsHttpBinding>
????????
<binding?name="MyBinding"?transactionFlow="True"?/>
??????
</wsHttpBinding>
????
</bindings>
2? 使用上面新增的BINDINGS Code
?<endpoint?address=""?binding="wsHttpBinding"?bindingConfiguration="MyBinding"?contract="Interface.IService"?>

?

3 在接口的方法上面加上如下屬性

Code
?[TransactionFlow(TransactionFlowOption.Mandatory)]

?

4 在實(shí)現(xiàn)接口類上面加上如下屬性

?

Code
[OperationBehavior(TransactionScopeRequired=true)]

?

5 接下來就是客戶端的調(diào)用了。

?

Code
??using?(TransactionScope?scope?=?new?TransactionScope())
????????????{
?????????????ServiceClient?over?
=?new?ServiceClient();
?????????????Data.Computer?p?
=over.GetComputer();
????????????
?????????????Console.WriteLine(p.ComputerName);
??????????????Console.Read();

????????????????scope.Complete();??
???????????????
????????????}

?

?

至此。 一個(gè)WCF的事務(wù)就完成了。

轉(zhuǎn)載于:https://www.cnblogs.com/z2002m/archive/2008/08/04/1260218.html

總結(jié)

以上是生活随笔為你收集整理的WCF之分布式事务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。