【问题标题】:MSDTC communication fails over VPNMSDTC 通信通过 VPN 失败
【发布时间】: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 时有什么问题吗?

【问题讨论】:

    标签: vpn msdtc


    【解决方案1】:

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

    【讨论】:

    • 有趣。我们在客户端使用的是 Windows XP SP2(32 位),在服务器上使用的是 Windows Server 2003。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 不,很遗憾,我既不管理 VPN RAS 服务器,也不管理与应用程序通信的数据库服务器。但是您可能对端口和子网/IP 范围限制是正确的。我会与网络部门核实。
      猜你喜欢
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2012-11-21
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      相关资源
      最近更新 更多