MSDTC通信通过VPN进行故障

时间:2008-12-15 21:57:34

标签: vpn msdtc

我有一个应用程序,它运行跨越同一服务器上多个数据库的事务。当然,这涉及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时有没有人知道任何问题?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我建议您运行DTCPing(可从某个地方的Microsoft站点获得)这在两台计算机上同时运行并检测所有DTC问题。

小心我在使用此工具时遇到很大困难,直到我实际阅读说明并在单击开始测试按钮之前启动测试的两侧。

答案 2 :(得分:1)

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