MSDTC启用——分布式事务

1、前言

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

2、MSDTC说明

MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。
该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web ServerMicrosoft SQL Server
该服务用于管理多个服务器。服务器

3、解决方案

  • 在服务中启动Distributed Transaction Coordinator服务
    网络

  • 修改组件服务里的选项
    点击打开开始—>管理工具—>组件服务
    依次展开组件服务—>计算机—>个人电脑—>Distributed Transaction Coordinator,右击本地DTC,选择属性,按下图进行设置,设置完成后点击肯定。分布式

这个时候本地已经能够正常使用了,可是Web服务器与数据库服务器不在同一台机器上的时候,仍是会报错,这个时候须要在数据库服务器上打开一个端口和一个应用程序。工具

  • 打开防火墙设置,添加出/入站规则
    端口:135
    应用程序:C:\Windows\System32\msdtc.exe

4、相关指令

  • 启动MSDTC服务:net start msdtc
  • 中止MSDTC服务:net stop msdtc
  • 卸载MSDTC服务:msdtc -uninstall
  • 从新安装MSDTC服务:mstdc -install

5、问题相关

  • 基础程序在 Open上失败。
  • 已禁用对分布式事务管理器(MSDTC)的网络访问。
  • 服务器上的MSDTC不可用。
相关文章
相关标签/搜索