MSDTC启用——分布式事务
2023-09-11 14:21:58 时间
MSDTC启用——分布式事务
作者:jianxuanbing
本文为作者原创,转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/7242254.html
阅读目录
一、前言
最近在做一个项目的时候使用了.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不可用。
相关文章
- 【C#】Entity Framework 增删改查和事务操作
- 【分布式事务】分布式事务解决方案
- 从银行转账失败到分布式事务:总结与思考
- spring boot:shardingsphere+druid整合seata分布式事务(spring boot 2.3.3)
- 分布式事务系列(开篇)提出疑问和研究过程
- 分布式事务解决方案
- JDBC 事务和 JTA 事务
- 分布式事务常见解决方案
- 重新整理 mysql 基础篇————— mysql 事务[三]
- 【转】分布式事务中常见的三种解决方案
- System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
- Redis---事务篇
- System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
- 14.2 事务的ACID属性
- 分布式事务
- JDBC事务
- Seata–分布式事务
- Mysql中的事务
- 测试SSH框架分层整合及验证事务是否有效