博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET分布式事务--TransactionScop
阅读量:6205 次
发布时间:2019-06-21

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

一、开启DTC服务

方式一

     计算机—管理—服务—Distributed Transaction Coordinator—属性—开启

方式二

    CMD命令子界面输入:net start msdtc

 

二、设置MSDTC

CMD命令界面输入:dcomcnfg.exe(或者:控制面板—管理工具—组件服务)

组件服务--计算机--我的电脑--Distributed Transaction Coordinator-本地DTC

三、

防火墙设置

设置例外程序“C:\Windows\System32\msdtc.exe”

四、数据库管理系统设置
数据库系统的设置,具体如下图。

右键 实例 属性

 

五、代码

DAL层代码

public static bool ExecuteSqlTranScope(List
cmdList) { int rows = 0; try {
using (System.Transactions.TransactionScope tsCope = new System.Transactions.TransactionScope()) { foreach (SqlCommand cmd in cmdList) { cmd.Connection.Open(); PrepareCommand(cmd, cmd.Connection, null, CommandType.Text, cmd.CommandText, cmd.Parameters); rows += cmd.ExecuteNonQuery(); } tsCope.Complete(); } if (rows > 0) return true; else return false; } catch { return false; } }

调用

List
cmdList = new List
();string connectStr = "data source=192.168.1.221;initial catalog=db;persist security info=True;user id=sa;password=123456;";string connectStr2 = "data source=192.168.1.221;initial catalog=db;persist security info=True;user id=sa;password=123456;";string sql = "INSERT INTO [SYS_USER_ADMIN]([FID],[LANGUAGEID],[LOGIN],[PASSWORD],[NAME],[CREATEMAN],[CREATEDATE],[MODIFYMAN],[MODIFYDATE],[UPDATETIME])VALUES (NEWID(),1,'TEST','TEST','TEST','',GETDATE(),'',GETDATE(),GETDATE())";string sql2 = "INSERT INTO [SYS_USER_ADMIN]([FID],[LANGUAGEID],[LOGIN],[PASSWORD],[NAME],[CREATEMAN],[CREATEDATE],[MODIFYMAN],[MODIFYDATE],[UPDATETIME])VALUES (NEWID(),1,'TEST2','TEST2','TEST2','',GETDATE(),'',GETDATE(),GETDATE())";cmdList.Add(new System.Data.SqlClient.SqlCommand(sql, new System.Data.SqlClient.SqlConnection(connectStr)));cmdList.Add(new System.Data.SqlClient.SqlCommand(sql2, new System.Data.SqlClient.SqlConnection(connectStr2)));SqlHelper.ExecuteSqlTranScope(cmdList);

其他错误情况:

错误1:(前提是程序和数据库 不在同一个服务器时)已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。 

需要设置程序服务器的DTC 

错误2: 该事务管理器已经禁止了它对远程/网络事务的支持。 (异常来自 HRESULT:0x8004D024) 

需要设置数据库服务器的DTC

 

错误3:与基础事务管理器的通信失败

需要设置程序服务器的DTC 防火墙问题

参考 http://wenku.baidu.com/link?url=ps4eSRpjF6TVy0tY7jCHSSOv1SmE4wzpDnxsBmy7C21FcFgb1mJySCCf82-fUASTD12f1C_7VhKIryEFCaWLA7ZS4UwRcMlOumWmY7KNISG

 

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

你可能感兴趣的文章
phpMyAdmin安装
查看>>
计划备份mysql数据库
查看>>
Tcp_wrapper
查看>>
Unity3D项目开发一点经验
查看>>
重定向描述符
查看>>
ormlite 多表联合查询
查看>>
PVS 6.1 Configuring Services Failed
查看>>
Netbackup detected IBM drives as unusable
查看>>
Win2003磁盘分区调整
查看>>
mysql本地连接错误解决办法
查看>>
tar命令速查
查看>>
Rails文件上传file_field报错Encoding::UndefinedConversionError
查看>>
java中重载和重写的区别
查看>>
Alictf 2015决赛题目设计和解题思路
查看>>
[arm驱动]linux内核中断编程
查看>>
正确认识 Vista 激活期限
查看>>
Oracle Study之--Oracle等待事件(5)
查看>>
Hyper-V Server联机调整虚拟硬盘大小
查看>>
你的成功有章可循
查看>>
Lync Server 2013无法共享PPT故障排错处理
查看>>