日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

  項目背景: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打開)。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久精品福利视频 | 99久久精品免费 | 精品久久久久久国产 | 一级毛片免费 | 成人在线免费视频观看 | 国产精品一卡 | 污网站在线看 | 亚洲高清在线观看 | 精品一区二区电影 | 九九热在线观看 | 日本一区二区视频在线 | 一二三区在线 | 黄色片免费看 | 久久精品在线 | 久久888 | 激情综合网五月 | 欧美伊人精品成人久久综合97 | 在线免费观看成人 | 玖玖玖视频 | 久久久国产一区二区三区 | 综合欧美一区二区三区 | 激情视频国产 | 日日操夜夜爽 | 欧美在线日韩在线 | 午夜在线一区 | 日韩久久片 | 久久精品一区二区 | 欧美黄色网 | 中文字幕日产av一二三区 | 亚洲欧美一区二区三区四区 | 操女人网址 | 一区二区av在线 | 高清不卡 | 九一精品 | 精品美女久久久久 | 国产精品污www在线观看 | 久久久久久综合 | 国产永久免费 | 久久精品国产精品亚洲 | 美女又爽又黄视频毛茸茸 | 国产伦精品一区二区三区照片91 |