![MSDTC 不可用,但仅在一个方向?](https://linux22.com/image/636022/MSDTC%20%E4%B8%8D%E5%8F%AF%E7%94%A8%EF%BC%8C%E4%BD%86%E4%BB%85%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%96%B9%E5%90%91%EF%BC%9F.png)
我在 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 服务器启动,它会在两端完成整个过程。