在 Windows2003 中启用分布式事务遇到的部分问题

本文针对在Windows2003环境下启用分布式事务时遇到的各种问题,如失去事务管理器连接、MSDTC不可用等,分享了一种有效的解决方法。通过卸载、删除NetBIOS协议、调整MSDTC服务配置等步骤,最终成功解决了问题。
摘要由CSDN通过智能技术生成

在 windows 2003 中启用分布式事务时候经常会遇到很多乱七八糟的问题,比如:

  • 失去了与事务管理器的连接。
  • 服务器 '%Server%' 上的 MSDTC 不可用。
  • 该伙伴事务管理器已经禁止了它对远程/网络事务的支持。
  • 还有最bt的就是:此事务已明地或暗地被确认或终止。
  • ....

下面将我的经验介绍给大家,欢迎大家一起讨论。

我在测试的时候,数据库是单独的一台机器,也碰到了上述部分问题。在解决问题的过程中,我在 google 和 MSDN 上搜索了很长时间,找到的文章倒是提出了很多解决方法,其中讲述的比较详细的文章有:

上述讲述的方法主要包括:
  • 在“添加或删除程序”的“添加/删除 Windows 组件”中安装“启用网路 DTC 访问”
  • 启用 NETBIOS 访问
  • 在 Sql Server 服务器上禁用 MSDTC 服务的 Rpc Security
  • 等等...

可是,在尝试了上述方法后还是同样的报错。真是像网上说的“被 COM+ 给彻底打败了”。

然后,我进行了以下的尝试:

  • 在命令行下运行 msdtc -uninstall,删除 msdtc(Distributed Transaction Coordinator)服务
  • 在“本地连接”的属性中删除了 NetBIOS 协议
  • 重新启动机器后,在命令行下运行 msdtc -install,安装 msdtc 服务。
    Note: 以上步骤在数据库服务器和代码运行机器上相同。
  • 在数据库服务器上,在“组件服务”mmc中,依次打开“组件服务”、“计算机”,在“我的电脑”上点右键选择“属性”。 然后选择“msdtc”选项卡中的“安全配置”,确认选中“网络 DTC 访问”,并选择“不要求进行验证”。
然后再次尝试运行代码,一切都顺利通过 :) 。

之所以要选择“不要求进行验证”,是因为我发现在“系统”日志中有 DCOM 的错误信息:

启动 DCOM 服务器的访问被拒绝。 服务器是: {00020906-0000-0000-C000-000000000046}
用户是 ANONYMOUS LOGON/NT AUTHORITY, SID=S-1-5-7.
但是选择不进行验证,肯定不是一个很好的解决方案。还有没有更好的解决方案,还望大家不吝赐教!

posted on 2005-05-19 15:00  路在何方? 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/losingmyself.cn/archive/2005/05/19/158904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值