MSDTC 通过 VPN 通信失败

发布于 2024-07-10 03:51:16 字数 950 浏览 9 评论 0原文

我有一个应用程序,可以在同一服务器上跨多个数据库运行事务。 当然,这涉及 Microsoft 分布式事务协调器,并且一切都按预期运行。

但是,当我通过 VPN 远程连接到托管服务器的网络并在本地计算机上运行应用程序时,我收到以下错误:

System.Transactions.TransactionManagerCommunicationException: “与底层事务管理器的通信失败。”

原因:

System.Runtime.InteropServices.COMException: 对 COM 组件的调用返回了错误 HRESULT E_FAIL。

以下是原始异常的堆栈跟踪:

at 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 时有什么问题吗?

I have an application that runs transactions spanning over multiple databases on the same server. Naturally this involves the Microsoft Distributed Transaction Coordinator and everything works like it is supposed to.

Howver, when I remotely connect to the network where the server is hosted via VPN and run the application on my local machine I receive the following error:

System.Transactions.TransactionManagerCommunicationException:
"Communication with the underlying transaction manager has failed."

Caused by:

System.Runtime.InteropServices.COMException:
Error HRESULT E_FAIL has been returned from a call to a COM component.

Here is the stack trace for the originating exception:

at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)
at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)

The problem arises only when I connect to the server through a VPN tunnel.
Note also that I have temporarly disabled Windows Firewall on my local machine, just to be sure it doesn't block the MSDTC.

Does anyone know of any issues when running MSDTC through VPN?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜心 2024-07-17 03:51:16

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

小心,我在使用这个工具时遇到了很大的困难,直到我真正阅读了说明并在单击开始测试按钮之前开始了测试的两侧。

I suggest you run DTCPing (available from the Microsoft site somewhere) This is run at the same time on both machines and detects all manner of DTC problems.

Be careful I had great difficulties with this tool until I actually read the instructions and started both sides of the test up before I clicked the start test button.

染火枫林 2024-07-17 03:51:16

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

Do you administer the VPN connection? There might be restricted ports on the VPN. Likewise, do you administer your servers? Your servers might only allow connections from IP addresses on the inside and not on the segment used for VPN service. If you are the administrator, perhaps saying which VPN software you are using will help.

断念 2024-07-17 03:51:16

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

I'm having the same problem using a Windows 7 x64 client and a Server 2003R2 server. I have been able to make it work (on the same vpn, same server) using XP, Vista x86, and Windows 7 x86. I have a support call with Microsoft open and they are looking into it. I'm curious - what operating system are you guys using on your client machines?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文