MSDTC启用——分布式事务

本文介绍了在使用.NET的System.Transactions时遇到的MSDTC问题及其解决方法。通过启动服务、修改配置和调整防火墙设置,解决了Web服务器与数据库服务器不同步导致的错误。

一、前言

最近在做一个项目的时候使用了.NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的问题主要是使用了分布式事务,而无法访问到数据库的问题,网上很多解决方法,都是启动一下服务,然后再修改服务组件的选项,但是当Web服务器与数据库不在同一台机器上的时候,还是会报错。
错误如下:

二、MSDTC说明

MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。
该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web ServerMicrosoft 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不可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值