手上的项目快接近尾声了,这二天准备切换旧系统时,需要与其它数据库做一些同步的工作,以前的系统在中间层使用COM+组件做数据同步,这次本想偷个懒,使用链接服务器做个视图,使用相应的触发器来同步,在提交数据时,总时报:“链接服务器"192.168.2.10"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持”错误。。花了半天时的时间,总算把问题解题了,现总结一下,希望对大家有所帮助。
主要的问题还是MSDTC的设置,找了一篇如下的文章,很帮助:
关于“COM+ 无法与 Microsoft 分布式事务协调程序交谈
出现了“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”的错误,一个很叫人郁闷的错误,找了很多资料,基本的解决方法整理如下:
1. 单击“开始”,指向“控制面板”,然后单击“添加/删除程序”。
2. 单击“添加/删除 Windows 组件”。
3. 选择“应用程序服务器”,然后单击“详细信息”。
4. 选择“启用网络 DTC 访问”,然后单击“确定”。
5. 单击“下一步”。
6. 单击“完成”。
7. 停止分布式事务协调器服务,然后重新予以启动。
8. 停止参与分布式事务的任何资源管理器服务(如 Microsoft SQL Server 或 Microsoft Message Queue Server),然后重新予以启动。
9.检查MSDTC设置是否正确.
1)打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。
2)转至"组件服务管理工具"。
3)浏览至"启动管理工具"。
4)选择"组件服务"。
a.展开"组件服务"树,然后展开"我的电脑"。
b.右键单击"我的电脑",然后选择"属性"。
c.在 MSDTC 选项卡中,确保选中了下列选项: 网络 DTC 访问
网络管理
网络事务
XA 事务
d.另外,"DTC 登录帐户"一定要设置为"NT Authority/NetworkService"。
5)单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。
6)单击"确定"关闭"我的电脑"属性窗口。
10.关闭网络防火墙(或者开放相应的端口135)
1.先在程序計算機上設置MSDTC:控制面板->管理工具->組件服務->我的電腦->右jiang->屬性->MSDTC->安全配置(Security Configuration)->打開Network DTC Access 同時打上
Allow Inbound ,Allow Outbound ,No Authentication Required,Enable Transaction Internet Protocol[TIP] Transaction
2.請在遠程數據庫計算機上做1同樣的事情
3.雙方計算機重新啟動MSDTC
4.這樣就可以了
其它的一些资料:
![](http://walkinhill.cnblogs.com/Emoticons/emsmile.gif)
1、 添加/删除程序中,选择添加Windows组件,选择应用程序服务器,选择启用分布式事务网络访问
2、 在DTC所涉及的所有服务器中,启用NETBIOS,确保所有服务器能相互ping通对方,具体为修改所有服务器中的C:/Windows/System32/Drivers/etc/hosts文件(具体可参考hosts文件的内部帮助)。 [注意]必须修改所有的服务器中的hosts文件
3、 禁用SQL Server 的DTC RPC安全,具体为在HKEY_LOCAL_MACHINE/Software/Microsoft/MSDTC下新建一个DWord键,名称为TurnOffRpcSecurity,设置其值为1
4、 重启MSDTC
5、 关闭网络防火墙(或者开放相应的端口)
6、 参考:
http://www.support.microsoft.com/?kbid=555017&SD=tech
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;306843
http://support.microsoft.com/kb/250367/
二台数据库服务器的都得这么设置就可以了。