• MSDTC启用——分布式事务


    MSDTC启用——分布式事务

    作者:jianxuanbing
    本文为作者原创,转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/7242254.html


    阅读目录

    回到顶部

    一、前言

    最近在做一个项目的时候使用了.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不可用。
  • 相关阅读:
    %
    【收藏】Javascript调用后台代码的方法
    C++Builder2010中配置OpenCV2.2
    【收藏】Visual studio 2008 && 2010 快捷键大全
    队列的练习
    哈希表
    poj 3750 链表
    C/C++内存存储 mark在此
    二叉树,深搜,广搜
    链表的练习
  • 原文地址:https://www.cnblogs.com/grj001/p/12224284.html
Copyright © 2020-2023  润新知