背景:
172.16.5.16 IIS服务器-win10
172.16.5.20 DB服务器-win10
MSSQL2014 多个业务库情形
分布式事务 启用MSDTC分布式事务
目标
在分布式模式下面,实现同一个根事务对不通DB子事务的统一写入操作
异常
现象表述【System.Transactions.TransactionManagerCommunicationException: 与基础事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException: 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持】
方案
1.在控制面板-管理工具-组件服务管理器中,找到如下图(1.0),并设置未如下图(1.1):
(图1.0) 图(1.1)
2.启用分布式服务,如下图所示,将其设置未自动启动
(图1.2)
3.防火墙设置,如下图所示进行设置
(图1.3)
4.Web服务器、DB服务器均设置
5.Web服务器hosts文件设置
打开C:\Windows\System32\drivers\etc\hosts文件;按照按照如下原则进行配置
DB服务器IP+空格+DB服务器电脑名,以本文为例,配置结果为:
172.16.5.20 PC_UNDTC_DB01
6.以上配置好后保存;
至此,配置结束,可以进行访问验证了