zoukankan      html  css  js  c++  java
  • 该事务管理器已经禁止了它对远程/网络事务的支持

    在一个项目中,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
    http://www.cnblogs.com/crabo/archive/2007/05/17/750118.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端口的例外。

  • 相关阅读:
    【POJ 1958】 Strange Towers of Hanoi
    【HNOI 2003】 激光炸弹
    【POJ 3263】 Tallest Cow
    【POJ 2689】 Prime Distance
    【POJ 2777】 Count Color
    【POJ 1995】 Raising Modulo Numbers
    【POJ 1845】 Sumdiv
    6月16日省中集训题解
    【TJOI 2018】数学计算
    【POJ 1275】 Cashier Employment
  • 原文地址:https://www.cnblogs.com/SALIN/p/1376683.html
Copyright © 2011-2022 走看看