多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > Spring.Net+WCF實現分布式事務

Spring.Net+WCF實現分布式事務

來源:程序員人生   發布時間:2015-04-27 08:37:21 閱讀次數:4359次

  項目背景:ITOO.Teacher.Service提供1套訪問教師數據庫的WCF服務,ITOO.Student.Service提供1套訪問學生數據庫的WCF服務。學生服務真個B層在進行業務處理時,需要調用教師的WCF服務,我們需要在學生服務真個B層加上散布式事務處理,向教師庫和學生庫更新數據,要末都成功,要末都不成功。

      1.在教師服務端,我們需要在WCF的接口上加上WCF散布式事務特性:

[OperationContract] [TransactionFlow(TransactionFlowOption.Allowed)] bool AddTeacher(TeacherViewModel vmTeacher);
      在教師服務真個B層實現上加上WCF散布式事務特性:
/// <summary> /// 增加學生 /// </summary> /// <param name="vmTeacher">教師ViewModel</param> /// <returns>布爾值</returns> [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] public bool AddTeacher(TeacherViewModel vmTeacher) { //創建轉換規則 Mapper.CreateMap<TeacherViewModel, TeacherEntity>(); //轉換實體 TeacherEntity enStudent = Mapper.Map<TeacherEntity>(vmTeacher); //調用dal層增加方法 this.CurrentDal.Add(enStudent); //提交事務,返回結果 return this.DbSession.SaveChanges() > 0; }
   2.在學生服務真個B層采取system.transactions進行散布式事務處理:

public void AddStudentTeacher(StudentViewModel vmStudent) { //創建轉換規則 Mapper.CreateMap<StudentViewModel, StudentEntity>(); //轉換實體 StudentEntity enStudent = Mapper.Map<StudentEntity>(vmStudent); //調用dal層增加方法 this.CurrentDal.Add(enStudent); this.DbSession.SaveChanges(); //調用老師的添加方法 ITeacherContracts teacherContracts = ServiceFactory.GetTeacherService(); TeacherViewModel vmTeacher = new TeacherViewModel { TeacherID = "123", TeacherName = "11" }; teacherContracts.AddTeacher(vmTeacher); }
       3.由于每一個事務處理都需要using TransactionScope、 trans.Complete,所以我們用Spring.Net的AOP管理這些相同的處理:

public class AroundAdvice : IMethodInterceptor { public object Invoke(IMethodInvocation invocation) { object result; using (TransactionScope trans = new TransactionScope()) { result = invocation.Proceed(); trans.Complete(); } return result; } }
   4.配置數據庫服務器的MSDTC服務:

     4.1開啟MSDTC服務,在DOS中輸入net start msdtc;

     4.2設置MSDTC,在DOS中輸入dcomcnfg.exe,按下圖所示設置:


     4.3關閉windows防火墻;

     4.4開啟數據庫的散布式事務支持,設置以下圖所示:


   當前版本是用system.transactions實現的散布式事務,用Spring.Net的AOP切了1下,至于Spring.Net的聲明式事務是不是可以實現對WCF散布式事務的管理,這個還有待研究。

   框架的源碼下載地址:http://pan.baidu.com/s/1hqvOC6K (最好用VS2012打開)。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 免费上床视频 | 久久精品无码一区二区日韩av | 青青草原国产在线观看 | 久久受www免费人成_看片中文 | 日韩高清无砖砖区2022 | 亚洲精品久久77777 | 亚洲欧美日韩不卡一区二区三区 | 古代级a毛片可以免费看 | 91亚洲精品久久 | 一二三四视频社区在线中文 | 色站综合| 免费乱码中文字幕网站 | 九操网 | 成人毛片18女人毛片免费视频未 | 精品国产91久久久久久久 | 一级毛片免费视频观看 | 亚洲精品网站在线观看不卡无广告 | 欧美黑人xxxx性高清版 | 一本免费视频 | 精品中文字幕不卡在线视频 | 亚洲资源站资源网在线 | 欧美国产成人一区二区三区 | 国内精品伊人久久久久 | 成人午夜精品久久久久久久小说 | 欧美网色 | 最近的免费中文字幕视频 | 欧美性生交大片 | 日韩精品一区二区三区中文在线 | 亚洲欧美日韩国产精品网 | 国产精品视频分类一区 | 国产精品爱久久 | 国产成人精品午夜二三区 | h黄网站| 亚洲欧美极品 | 四虎东方va私人影库在线观看 | 一区二区精品 | 91精品在线免费观看 | 五月亚洲 | 亚洲天堂日韩在线 | 日本中文字幕第一页 | 成人久久免费视频 |