TransactionScope 分布式事务配置
转自 https://www.cnblogs.com/taiyonghai/p/6047849.html
1、先添加System.Transactions的引用(需要添加Net程序集)
C#调用时的代码如下:
对此分布式事务类讲解的很清晰的blogs地址:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html
using System.Transactions; using (TransactionScope scope = new TransactionScope()) { //trancation one do something... var dbo1 = DBFactory.GetDBFacade(DBConnectionStringName.YSL_BusinessTravelTrade_ReadWrite); string sql1 = "UPDATE dbo.TestUser SET name='ccc' WHERE id = 2"; dbo1.ExecuteNonQuery(CommandType.Text, sql1); //trancation two do something... var dbo = DBFactory.GetDBFacade(DBConnectionStringName.YSL_BusinessTravel_ReadWrite); string sql = "UPDATE dbo.TestUser SET name='ccc' WHERE id = 2"; dbo.ExecuteNonQuery(CommandType.Text, sql); //submit scope.Complete(); }
2、设置web服务器及sql服务器环境配置
控制面板->系统和安全->管理工具->组件服务
(WEB服务器和SQL服务器都需要配置此项)
控制面板->系统和安全->管理工具->服务
(WEB服务器和SQL服务器都需要配置此项)
控制面板->系统和安全->Windows防火墙
(WEB服务器和SQL服务器都需要配置此项)
3、MSSQL配置
对服务器连接,右键->属性
4、配置Hosts(只配置WEB服务器即可,如果不行,在SQL服务器上也配置上)本人的情况就是加上这个配置才没有报错
C:\Windows\System32\drivers\etc hosts文件,用记事本打开
(在WEB服务器上的Hosts文件中需要配置SQL服务器的信息)
(如果测试通不过,在SQL服务器上的Hosts文件中配置上WEB服务器的信息)