Dtcping测试通过但仍然与底层事务管理器的通信失败

Kim*_*imi 8 c# sql-server msdtc transactions transactionscope

DTCPing工具说一切都应该没问题.实际的例外是:

System.Transactions.TransactionManagerCommunicationException:
Run Code Online (Sandbox Code Playgroud)

与底层事务管理器的通信失败.---> System.Runtime.InteropServices.COMException:由于通信问题,MSDTC事务管理器无法将事务推送到目标事务管理器.可能的原因是:存在防火墙且MSDTC进程没有例外,两台计算机无法通过其NetBIOS名称找到对方,或者两个事务管理器之一未启用对网络事务的支持.(HRESULT异常:0x8004D02A)

该服务在VM上运行.其他服务器能够运行分布式事务,因此正确配置了DB框.

Sim*_*ier 3

这里有一篇关于此主题的好文章:Troubleshooting Problems with MSDTC。它最初是为 BizTalk Server 编写的,但也适用于其他服务器。

由于您是在 VPC 上运行,因此 DTC 可能与同一网络上的另一台计算机共享一些标识符。请查看本文中的“确保为 MSDTC 分配唯一的 CID 值”一章(另请参阅http://blogs.msdn.com/b/johnlee/archive/2008/09/09/msdtc-on-virtual-machines .aspx),尽管我相信 DTCPing 应该告诉您这一点...您也可以尝试msdtc -uninstall修复msdtc -install此问题。

您还应该检查您的服务器是否未使用某些 VPN 或加密技术。我记得这可能会引起问题。