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:WindowsSystem32driversetchosts文件;按照按照如下原则进行配置 

    DB服务器IP+空格+DB服务器电脑名,以本文为例,配置结果为:

    172.16.5.20 PC_UNDTC_DB01

    注意:第九点在前面的配置无效情况下,尝试下第9点;

  10.以上配置好后保存;

至此,配置结束,可以进行访问验证了

  注意:如果经过上述配置还是无法通信,请检查网路策略方面的访问限制

  

原文地址:https://www.cnblogs.com/oumi/p/15095060.html