同じサーバー上の複数のデータベースにまたがるトランザクションを実行するアプリケーションがあります。当然、これには Microsoft Distributed Transaction Coordinator が関与し、すべてが想定どおりに機能します。
ただし、サーバーがホストされているネットワークに VPN 経由でリモート接続し、ローカル マシンでアプリケーションを実行すると、次のエラーが表示され
ます。
原因:
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)
で
この問題は、VPN トンネル経由でサーバーに接続する場合にのみ発生します。
また、MSDTC をブロックしないようにするために、ローカル マシンで Windows ファイアウォールを一時的に無効にしていることにも注意してください。
VPN を介して MSDTC を実行する際の問題を知っている人はいますか?