MSDTC communication fails over VPN

msdtcvpn

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?

Best Answer

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.