MSDTC 事务管理器无法从源事务管理器提取事务
2019-05-24 本文已影响0人
zxws1009
一、问题
项目背景:项目成员间各自用自己的电脑作为web 服务器,数据库则是部署在公司内部的局域网服务器上。
MSDTC之前一直工作正常,突然有一天出现了错误,错误日志中英文如下:
error message
Communication with the underlying transaction manager has failed
由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持
二、分析原因
DTC是配置好了的,而且之前也能用,目前也有小伙伴可以正常用,但我的不行,很奇怪;
本机防火墙是关了的,服务器关了还是不行;
因此很大可能是 两台计算机根据其 NetBIOS 名称无法找到彼此
三、解决方案
在数据库服务器(MSSQL)上的 hosts 文件中加入 Web 服务器(IIS) 的 IP 和 主机名的映射
1. 定位到 C:\WINDOWS\system32\drivers\etc 目录
2. 打开 hosts 文件
3. 在底部添加一行 Web 服务器 IP 和 主机名(就是电脑名)映射, 如:
10.10.120.78 MSI
结束!!