MSDTC 不可用,但仅在一个方向?

MSDTC 不可用,但仅在一个方向?

我在 2 台服务器上启用了 DTC - 一台 Web 服务器和一台数据库服务器。我们的 Web 应用程序中有几个地方需要使用 DTC(通过 TransactionScope)来管理涉及多个数据库的事务。在我们的 AD 服务器上,它运行良好,但出于某种原因,它在不是域成员的一对服务器上无法完全正常工作。我收到以下错误:

 MSDTC on server 'DATABASE-SERVER' is unavailable.

从我的网络服务器使用 DTCPing,我得到了一次成功的测试,但是从我的数据库服务器却没有(它在 RPC 调用后停止并且没有消息)。

有关配置的一些注意事项:

  • 两台服务器上的防火墙均已禁用
  • 两者的 DTC 配置相同(本地 DTC 属性有网络 DTC 访问等,允许远程客户端/管理员,允许入站/出站通信,启用所有事务类型,并且“无需身份验证”
  • 使用 DTCPing,我可以从 Web 服务器连接到数据库服务器,但反之则不行
  • RCPPing 在两个方向上都运行良好
  • DTC 在两者上运行
  • 我已重新启动服务,并在两台服务器上多次执行卸载/安装
  • nbtstat -c 正确显示远程服务器名称

我发现服务器之间的唯一区别是,当我从数据库服务器启动 DTCPing 时,它不会完成测试(它只是说“请从 WEB-SERVER 启动 PING 以完成测试”),而如果我从 Web 服务器启动,它会在两端完成整个过程。

相关内容