您的位置:首页 > 理论基础 > 计算机网络

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

2009-01-15 23:07 260 查看
在一个项目中,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
/article/5957076.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端口的例外。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐