博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
阅读量:6428 次
发布时间:2019-06-23

本文共 1048 字,大约阅读时间需要 3 分钟。

首先是ef的多数据库操作实现事务的方法 

 

public int AddDifferenceDB(userinfo1 user1, userinfo user){int result = 0; using (var test2DB = new test2Entities1()) { using (var test1DB = new test1Entities1()) { using (TransactionScope trans = new TransactionScope()) { try { test2DB.Set
().Add(user1); test1DB.Set
().Add(user); result += test2DB.SaveChanges(); result += test1DB.SaveChanges(); trans.Complete(); } catch (Exception ex) { trans.Dispose();//出现异常,事务手动释放 Log log = new Log(); Task.Run(async () => await log.AsyncAddLog("xxx添加出错,事务已回滚", ErrorType.Error, ex));//写入错误日志,正式环境下把XXX更换成当前操作人的ID return -1; } } } } return result; }

方法很简单。 没啥可说的。

主要是在

result += test1DB.SaveChanges(); 的时候 总是出现错误。   各种各样的错误。。  但是从头到尾的解决办法还是有的。  按照这个步骤操作应该就能解决大部分人遇到的问题

1.检查msdtc服务是否开启

        1.在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->(右键)属性-->安全
 
 
        2.在CMD下运行"net start msdtc"开启服务后正常。
2.检查防火墙,我是在本地做的测试,所以直接把防火墙关闭了,在正式服务器上是要配置入站规则和出站规则。
3.添加hosts
     在DB服务器上需要添加web服务器的机器名和地址。否则容易出现“
与基础事务管理器的通信失败”这个错误。    
     需注意  hosts里面最后一行如果不加回车的话是不识别最后一行的。 

转载地址:http://krnga.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
tomcat nginx默许的post大小限制
查看>>
Ajax用户注册验证
查看>>
OSI七层模型
查看>>
感悟生活 ,感悟人生
查看>>
去除工程的.svn隐藏文件夹
查看>>
Python24 终端如何输出彩色字体
查看>>
winrar3.93
查看>>
XSS跨站脚本***
查看>>
MFC类库之CArray
查看>>
Java环境一键配置,需要手动输入jdk路劲。
查看>>
Git 常用命令
查看>>
HTML基本结构
查看>>
linux 挂载光驱
查看>>
ASP.NET MVC Area操作
查看>>
CSS颜色代码大全
查看>>
LINQ之路10:LINQ to SQL 和 Entity Framework(下)
查看>>
circle area
查看>>
怎么改变按钮的图标
查看>>
当输入流和输出流同时作用一个文件
查看>>