title: MSDTC communication fails over VPN
body: <p>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.<br/></p>
  
  <p>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:<br/><br/>
  <strong>System.Transactions.TransactionManagerCommunicationException</strong>: 
  "Communication with the underlying transaction manager has failed."<br/></p>
  
  <p>Caused by:<br/><br/>
  <strong>System.Runtime.InteropServices.COMException:</strong> 
  Error HRESULT E_FAIL has been returned from a call to a COM component.</p>
  
  <p>Here is the stack trace for the originating exception:<br/></p>
  
  <p><em>at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid&amp; transactionIdentifier, OletxTransactionIsolationLevel&amp; isolationLevel, ITransactionShim&amp; transactionShim)<br/>
     at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)</em></p>
  
  <p>The problem arises <strong>only when I connect to the server through a VPN tunnel.</strong><br/>
  Note also that I have temporarly disabled Windows Firewall on my local machine, just to be sure it doesn't block the MSDTC.</p>
  
  <p>Does anyone know of any issues when running MSDTC through VPN?</p>