该事务管理器已经禁止了它对远程/网络事务的支持

在一个项目中,IIS服务器与SQL Server数据服务器在不同机器上,使用system.transaction出现异常
错误信息是:该伙伴事务管理器已经禁止了它对远程/网络事务的支持
从网上找了不少资料,最后是这么解决的(各人情况不一样,只提供本人的当时环境配置和解决方法,供大家参考)
机器软件配置:
数据库:windows xp+sql server2000(临时找来的,呵呵,所以用xp)
IIS服务器:windows 2003

 在两台机器上做如下操作:
    * 在命令行下运行 msdtc -uninstall,删除 msdtc(Distributed Transaction Coordinator)服务。(计算机没什么反应,执行一下就过去了)
    * 在“本地连接”的属性中删除了 NetBIOS 协议(如果没有就算了,只要确认没有使用该协议即可)
    * 重新启动机器后,在命令行下运行 msdtc -install,安装 msdtc 服务。 (计算机没什么反应,执行一下就过去了)

然后在数据库服务器上:
    * 在“组件服务”mmc中,依次打开“组件服务”、“计算机”,在“我的电脑”上点右键选择“属性”。然后选择“msdtc”选项卡中的“安全配置”,勾选: "允许网络访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证",确认选中“网络 DTC 访问”,并选择“不要求进行验证”。
参考:
http://losingmyself.cn.cnblogs.com/archive/2005/05/19/158904.html
http://www.cnblogs.com/crabo/archive/2007/05/17/750118.html

个人总结:

1、当网站程序与数据库在同一个服务器上时,只要在服务里面开启MSDTC的服务,具体操作为:"我的电话"右击选择"服务",在列表是找到[Distributed Transaction Coordinator]服务,设为启动。

2、当网站程序与数据库不在同一个服务器时,除了两台机子都要开启MSDTC服务外,还要做以下操作:

1)      单击“开始”,指向“控制面板”,然后单击“添加或删除程序”;

2)      单击“添加/删除 Windows 组件”;

3)      选择“应用程序服务器”,然后单击“详细信息”;

4)      选择“启用网络 DTC 访问”, 网络管理 、网络事务、XA 事务。另外,DTC 登录帐户一定要设置为“NT Authority\NetworkService”,并且事务管理器通讯不要求进行验证。然后单击“确定”;

5)      单击“下一步”;

6)      单击“完成”;

7)      停止分布式事务处理协调器服务,然后重新予以启动;

8)      停止 Microsoft SQL Server 和其他参与分布式事务处理的资源管理器服务(如 Microsoft 消息队列),然后将其重新启动;

9)      MSDTC依赖于RPC,RPC使用的端口是135,给防火墙添加135端口的例外。

原文地址:https://www.cnblogs.com/SALIN/p/1376683.html