【发布时间】:2010-09-27 01:22:57
【问题描述】:
我有一个应用程序在同一台服务器上运行跨越多个数据库的事务。当然,这涉及到 Microsoft 分布式事务协调器,并且一切正常。
但是,当我通过 VPN 远程连接到托管服务器的网络并在本地计算机上运行应用程序时,我收到以下错误:
System.Transactions.TransactionManagerCommunicationException:
“与底层事务管理器的通信失败。”
由以下原因引起:
System.Runtime.InteropServices.COMException:
对 COM 组件的调用已返回错误 HRESULT E_FAIL。
这是原始异常的堆栈跟踪:
在 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 时有什么问题吗?
【问题讨论】: