NET中的System.Transactions(分布式事务)
2017-08-01 09:22
337 查看
NET中的
System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了
MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的问题主要是使用了分布式事务,而无法访问到数据库的问题,网上很多解决方法,都是启动一下服务,然后再修改服务组件的选项,但是当Web服务器与数据库不在同一台机器上的时候,还是会报错。
错误如下:
回到顶部
二、MSDTC说明
MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。
该服务的进程名为
Msdtc.exe,该进程调用系统
Microsoft Personal Web Server和
Microsoft SQL Server。
该服务用于管理多个服务器。
回到顶部
三、解决方案
在服务中启动Distributed Transaction Coordinator服务
修改组件服务里的选项
点击打开
开始—>
管理工具—>
组件服务
依次展开
组件服务—>
计算机—>
我的电脑—>
Distributed Transaction Coordinator,右击
本地DTC,选择
属性,按下图进行设置,设置完成后点击确定。
这个时候本地已经可以正常使用了,但是Web服务器与数据库服务器不在同一台机器上的时候,还是会报错,这个时候需要在数据库服务器上打开一个端口和一个应用程序。
打开防火墙设置,添加出/入站规则
端口:
135
应用程序:
C:\Windows\System32\msdtc.exe
回到顶部
四、相关指令
启动MSDTC服务:net start msdtc
停止MSDTC服务:
net stop msdtc
卸载MSDTC服务:
msdtc -uninstall
重新安装MSDTC服务:
mstdc -install
回到顶部
五、问题相关
基础程序在 Open上失败。已禁用对分布式事务管理器(MSDTC)的网络访问。
服务器上的MSDTC不可用。
相关文章推荐
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- 谈谈分布式事务之三: System.Transactions事务详解[下篇]
- 谈谈分布式事务之三: System.Transactions事务详解[下篇]
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
- System.Transactions 事务处理
- System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
- 使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载
- T-SQL中的事务处理、ADO.NET中的事务处理、LINQ to SQL中的隐式事务处理、分布式事务处理
- asp.net core集成CAP(分布式事务总线)
- .NET开发中的事务处理大比拼 之 System.Transactions
- System.Transactions.TransactionException: 该伙伴事务管理器已经禁止了它对远程/网络事务的支持。
- ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)
- ado.net 分布式事务处理示例,及微软官方示例
- asp.net mvc 事务处理:Transactions
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- .net mysql dts 分布式事务 Multiple simultaneous connections or connections with different connection··
- [第4篇]System.Transactions事务之事务(Transaction)和可提交事务(CommittableTransaction)
- System.Transactions事务超时设置