一、出错情况
对COM组件的调用返回了错误HRESULT E_FAIL
该伙伴事务管理器已经禁止了它对远程/网络事务的支持。(异常来自 HRESULT:0x8004D025)
二、原因分析
与事务有关,WEB服务器和DB服务器不是同一部机器。最近有更换过数据库服务器,可能是缺少与事务相关的配置。
三、处理方案
在DB服务器上进行以下操作步骤:
1. 单击“开始”,指向“控制面板”,然后单击“添加/删除程序”。
2. 单击“添加/删除 Windows 组件”。
3. 选择“应用程序服务器”,然后单击“详细信息”。
4. 选择“启用网络 DTC 访问”,然后单击“确定”。
5. 单击“下一步”。
6. 单击“完成”。
7.检查MSDTC设置是否正确.
1)打开命令提示,运行"net stop msdtc"停止服务,然后运行"net start msdtc"启动服务。
2)转至"管理工具〉组件服务〉组建服务〉我的电脑〉点击右键进行设置"。
确保选中了下列选项: 网络 DTC 访问
网络管理
网络事务
XA 事务
另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。
3)单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。
4)单击"确定"关闭"我的电脑"属性窗口。
8.关闭网络防火墙(或者开放相应的端口135)
四、执行结果
最终是正常了。
但是有个过程有点奇怪:
重启了数据库服务器的数据库服务,没有重启数据库服务器;
重启了WEB服务器的IIS,重启了WEB服务器。
当天晚上处理过后执行28字配置功能还是出现同样的错误提示。
第二天操作28字配置功能和复制角色集、申请审核商家等涉及事务的功能都正常。
有个猜测是可能跟配置的生效时间有关,当时没有重启数据库服务器,如果重启有可能就生效了。