Win-Msdtc-RPC配置
背景:
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.MSDTC-访问配置:
2.RPC动态端口
打开注册表详见配置成果:
3.MSDTC默认端口
TurnOffRpcSecurity 值改为0
4.重启分布式服务
5.防火墙设置-分布式事务处理协调器放行
5.防火墙设置-RPC动态端口放行
入站配置:
出战配置:
6.防火墙设置-MSDTC端口放行
入站配置:
出站配置:
7.防火墙设置-msdtc.exe放行
入站配置:
出战配置:
8.数据库安全连接配置
8.Web服务器、数据库服务器以及其他需要通信的Win服务器保持相同的配置
9.hosts文件设置
打开C:\Windows\System32\drivers\etc\hosts文件;按照按照如下原则进行配置
DB服务器IP+空格+DB服务器电脑名,以本文为例,配置结果为:
172.16.5.20 PC_UNDTC_DB01
注意:第九点在前面的配置无效情况下,尝试下第9点;
10.以上配置好后保存;
至此,配置结束,可以进行访问验证了
注意:如果经过上述配置还是无法通信,请检查网路策略方面的访问限制