transaction manager has disabled its support for remote/network transactions. 该伙伴事务管理器已经禁止了它对远程/网络事务

最近再用SSIS做数据归档,里面用到了分布式事务。在开发阶段是在一台计算机上运行只要是启动分布式服务就没什么问题,可是昨天把它部署到uat的时候遇到问题,错误信息是:

最后找到解决方案:

    1. 确认"Distribute Transaction Coordinator"服务在Server和本地都是运行状态。
    2. 在Server上打开 Component Services。 Control Panel –> System and Security –> Administrative Tools –> Component Services.
    3. 展开至 Component Services –> Computers –> My Computer –> Distributed Transaction Coordinator –> Local DTC, 右键,选择Properties。在弹出的Dialog中选择Tab “Security”, 勾选Network DTC Access 等选项,具体设置如下图。
    4. 以上的截图是在win8上的,如果你的系统是xp或是2003则有些变化.展开至 Component Services –> Computers –> My Computer 右键,选择Properties。在弹出的Dialog中选择Tab “MSDTC”–>Security Configuration, 勾选"Network DTC Access", "Allow Remote Client",
      "Allow Inbound/Outbound", "Enable TIP" (Some option may not benecessary, have a try to get your configuration) 等选项,具体设置如下图。
    5. 确认后会要求重新启动Service。注:如果在后面的步骤做完后,还是无法解决问题,可能需要重启电脑。
    6. 确认DTC不会被你的防火墙阻止。

 请注意,如果大家的环境和我一样不在域里面,请选中不要求进行验证。否者在运行分布式事务时远程计算机会提示“此事务已明地或暗地被确认或终止 ”。(计算机名称一定要能ping通,否则回报相同的错误)

ps:

1.还发现一个问题,数据库也需要开启分布式事务的支持:右键“服务器连接”的属性,在打开的属性窗口选择“连接”,在窗口右侧,勾选“需要将分布式事务用于服务器到服务器的通信”,确定即可。

2.需要打开分布式的端口,端口号是135,或者添加System32下msdtc.exe的例外。

以上是在xp中,以下是win8中防火墙设置

3.在事务中,即使存在嵌套的情况,同一个事务内的所有数据库连接对数据都是可访问的。

原文地址:https://www.cnblogs.com/jiangu66/p/3170159.html