1

我有一个应用程序在同一台服务器上运行跨越多个数据库的事务。当然,这涉及到 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 时有什么问题吗?

4

3 回答 3

2

我建议您运行 DTCPing(可从某处的 Microsoft 站点获得)它在两台机器上同时运行并检测各种 DTC 问题。

请注意,在我真正阅读说明并在单击开始测试按钮之前开始测试之前,我在使用此工具时遇到了很大的困难。

于 2008-12-16T01:56:30.217 回答
1

您是否管理 VPN 连接?VPN 上可能存在受限端口。同样,您是否管理您的服务器?您的服务器可能只允许来自内部 IP 地址的连接,而不是用于 VPN 服务的网段。如果您是管理员,或许说出您正在使用的 VPN 软件会有所帮助。

于 2008-12-16T00:04:56.293 回答
1

我在使用 Windows 7 x64 客户端和 Server 2003R2 服务器时遇到了同样的问题。我已经能够使用 XP、Vista x86 和 Windows 7 x86 使其工作(在同一 vpn、同一服务器上)。我有一个 Microsoft 打开的支持电话,他们正在调查它。我很好奇 - 你们在客户端机器上使用什么操作系统?

于 2010-04-29T17:39:31.780 回答