资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
与基础事务管理器的通信失败.Net 开发过程中,涉及多个数据库和不同数据库的分布式事务(Distributed Transaction)开发,有时会碰到“与基础事务管理器的通信失败 ”的错误。导致这个错误一般有下列三个原因:1) MSDTC 设置不正确;2) 是否被防火墙阻挡;3) 跨网段通讯或跨域通讯;在数据库项目开发时,连接一个远程数据库(如 SQLServer2005 时)时,创建多个数据库连接时,SQLServer2005 会自动由 LTM(Light Weight Transaction Manager)升级成 OLETX(MSDTC)来处理,开启 MSDTC 服务,通过 RPC 远程数据库。排除此问题可通过以下几步来解决:一、检查数据库端机器与客户端(比如 Web 端)的 MSDTC 配置,如下图所示:注:在 Windows2003+sp1 或 WinXP+SP2 的机器环境时,若客户端和数据库端的操作系统一样(即都为 Win2003+sp1 或 WinXP+SP2) ,则可以要求双方进行验证;若客户端和服务端有一方不相同(如为 win2000)时,需设置为不要求进行验证;因此安全配置建议设置为不要求进行验证,如上图所示。二、若还是不成功,可以看一下是否开启网卡上的防火墙,可把 MSDTC 加入例外,如下图所示:(关于 MSDTC 与防火墙的问题可参考:http:/support.microsoft.com/kb/306843/zh-GB).Net 开发过程中,涉及多个数据库和不同数据库的分布式事务(Distributed Transaction)开发,有时会碰到“与基础事务管理器的通信失败 ”的错误。导致这个错误一般有下列三个原因:1) MSDTC 设置不正确;2) 是否被防火墙阻挡;3) 跨网段通讯或跨域通讯;在数据库项目开发时,连接一个远程数据库(如 SQLServer2005 时)时,创建多个数据库连接时,SQLServer2005 会自动由 LTM(Light Weight Transaction Manager)升级成 OLETX(MSDTC)来处理,开启 MSDTC 服务,通过 RPC 远程数据库。排除此问题可通过以下几步来解决:一、检查数据库端机器与客户端(比如 Web 端)的 MSDTC 配置,如下图所示: 注:在 Windows2003+sp1 或 WinXP+SP2 的机器环境时,若客户端和数据库端的操作系统一样(即都为 Win2003+sp1 或 WinXP+SP2) ,则可以要求双方进行验证;若客户端和服务端有一方不相同(如为 win2000)时,需设置为不要求进行验证;因此安全配置建议设置为不要求进行验证,如上图所示。二、若还是不成功,可以看一下是否开启网卡上的防火墙,可把 MSDTC 加入例外,如下图所示:(关于 MSDTC 与防火墙的问题可参考:http:/support.microsoft.com/kb/306843/zh-GB)至于 MSDTC 的通信检测,用户可以通过 DTCPing(或 DTCTester)工具进行测试。DTCPing 需服务端和客户端成对进行测试,一方启动为服务端,而另一方启动为客户端,进行 DTC 通信测试。下图是 DTCPing 测试的示例:如上图所示,DB 服务器和客户端 RPC 是相互连通可以通信的。注意:Remote Server Name 为 NetBios 名称。工具可以从微软网站上下载:DTCPing 可以从微软站点下载:http:/www.microsoft.com/downloads/details.aspx?FamilyID=5e325025-4dcd-4658-a549-1d549ac17644&DisplayLang=enDTCPing 说明:http:/support.microsoft.com/default.aspx?scid=kb;EN-US;Q306843DTCTester 可以从微软站点下载:http:/support.microsoft.com/?scid=kb%3Ben-us%3B293799三、在若还不行,看一下数据库服务器与客户端(如 web 端)是不是在同一网段(或者同一个 AD 域) ,检测步骤可参考如下:a) telnet DbIP 135 是否可以通;b) 然后相互 Ping IP;c) 再 ping 相互的 NetBios 名称,还不通的话d) 可以修改%windir%/system32/etc/hosts,或%windir%/system32/etc/lmhost.sam 去掉文件扩展名,进行 DB 服务和 IP 的绑定即可,如下图所示:在不同的AD 域中,若 IP 可以 ping 通,但机器名称不能 Ping 通,则说明机器名称解析有问题,请检测 wins 服务和 DNS 是否正确。通过以上几步,一般 MSDTC 的通信就 OK 了。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号