1

我有两个系统,一个是安装了我的应用程序的 Windows 7 Enterprise,另一个是安装了数据库的 Windows Server 2008 R Sp1 机器。

使用底层事务管理器访问数据库通信失败时出现以下错误。由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务。可能的原因是:存在防火墙并且 MSDTC 进程没有异常,两台机器无法通过它们的 NetBIOS 名称找到彼此,或者两个事务管理器之一未启用对网络事务的支持。

我已经启用了所需的 MSDTC 和入站和出站请求,并且没有设置身份验证。

两个系统都在同一个域中。

从 windows server 2008 R2 机器我可以按名称 ping 到 windows 7,反之亦然。

尝试从域控制器机器上 ping Windows server 2008 R2 机器并失败。

有些地方读到应该设置两台服务器之间的 Trasactions MSDTC 并测试这些设置 DTCPing 工具可用。运行时失败

尝试从 Windows Server 2007 机器 ping 到 Windows Server 2008 R2 时的 DTCPing 工具,因为它无法通过 netbios 名称找到它

4

1 回答 1

2

我有同样的问题赢得我的win10机器。检查以下步骤:

服务 => 分布式事务协调器正在运行

组件服务 => 本地 DTC => 属性 => 检查是否允许入站和出站。我有以下设置: 本地 DTc

组件服务 => 我的电脑 => 属性 => 默认协议 => TCP/IP 端口范围 5000-5100 已配置。

端口范围 5000-5100

Windows 防火墙 => 允许应用程序或功能通过 Windows 防火墙 => 分布式事务协调器

分布式事务协调器

如果未设置三个复选框,您可以使用以下命令执行此操作

netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-In)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-Out)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC-EPMAP)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-In)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-Out)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC-EPMAP)" new enable=yes profile="domain,private,public"
于 2017-08-03T13:29:32.840 回答