已禁用对分布式事务管理器(MSDTC)的网络访问。

来源:互联网 发布:2016年社交网络格局 编辑:程序博客网 时间:2024/04/30 05:33
配置msdtc需要分别配置数据库服务器和开发机,因为只有两个机器都配置正确了,分布式事务才不会报乌七八糟的错误。如果数据库服务器和开发机是同一台机器,那就不用看本文了,因为不存在分布式事务的问题。

       数据库服务器和开发机中配置msdtc的步骤是一样的,下面列出配置步骤。

     1、防火墙。如果防火墙是关的,那就不用再设置了。如果防火墙是开的,那么确保msdtc.exe是在它的例外里,一般这个程序是在C:\Windows\System32 \msdtc.exe这个角落。有时候你会发现在防火墙的例外里添加了msdtc,还是不行,那有可能是跟一个端口有关系,即135端口,这是个RPC端口,在出错的时候,可以尝试将该端口也添加到防火墙的例外里。

     2、打相关数据库补丁。如果数据库服务器是sql2000,那么确保已经打了sp4补丁。也许有人会说,这是什么年代了,还用sql2000做数据库服务器,但是要记住,买单的是客户,而不是我们自己,客户一般情况下几年前买了sql2000,不一定会被你说服去花钱升级到2005或2008。如果数据库是sql2005,那么最好把sq2 补丁打上。

    3、msdtc的配置。msdtc的配置是在组件服务里进行的,具体如下图所示,我也就不一一说了。这里是用windows2008为例的,其它版本的设置都类似。

         在使用本地协调器上打上勾。

设置msdtc属性页

关键是这页一定要设置正确。

      4、设置com+。很多人遇到msdtc的问题后,在网上百搜搜不到解决办法,故流传被com+彻底打败了,偶对com+没什么研究,下面的设置也是从别人那里学的,我这里做个总结而已。

编辑[访问权限]和[启动和激活权限]的默认值,将network service账号设置为拥有所有权限。

      5、检查注册表。检查下图中显示的两项的值。在注册表中的路径在图片的下方可以看到。



1.启动2台sql server服务器的msdtc服务,做cluster的话,必须为每个节点运行comclust.exe
2.2台sqlserver都要设置好对方的linkserver,
3.如果2台sql server服务器不属于同一个网段,则需要双方配置host,保证ping机器名可以ping通对方
4.可以使用dtcping工具测试一下
5.这样,就sql server可以进行分部式查询和事务操作了。


原创粉丝点击