我有一个应用程序在同一台服务器上运行跨越多个数据库的事务。当然,这涉及到 Microsoft 分布式事务协调器,并且一切都按预期进行。
但是,当我通过 VPN 远程连接到托管服务器的网络并在本地计算机上运行应用程序时,我收到以下错误:
System.Transactions.TransactionManagerCommunicationException:“与底层事务管理器的通信失败。”
原因:
System.Runtime.InteropServices.COMException:
错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。
这是原始异常的堆栈跟踪:
在 System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel&isolationLevel, ITransactionShim& transactionShim)
在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
只有当我通过 VPN 隧道连接到服务器时才会出现问题。
另请注意,我在本地计算机上暂时禁用了 Windows 防火墙,以确保它不会阻止 MSDTC。
有人知道通过 VPN 运行 MSDTC 时有什么问题吗?