2016-11-03 15 views
0

私のアプリケーションは、2つのウィンドウのAzure仮想マシンにデプロイされています。 1マシンはSQLサーバー用、もう1台はアプリケーション用です。MSDTC、基盤となるトランザクションマネージャとの通信に失敗しました+ Windows Azure VM

アプリケーションでは、TransactionScopeを使用しています。そこで、以下の図に示すように、両方のVMにトランザクションの設定を適用しました。また

enter image description here

、私は両方のマシン上のファイアウォールで分散トランザクションコーディネーターを許可されています。

私はループを持つ長い実行プロセスを持っています、各ループの内側に私は別のTransactionScopeを持っています。時々、必ずしもそうではない、私は以下の例外を得ている。

Communication with the underlying transaction manager has failed. ------- Inner Exception: The MSDTC transaction manager was unable to pull the transaction from the source transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers.

「システムセンターEndpoint Protectionのは、」両方の仮想マシンにインストールされている、私は結果なしで、リアルタイム保護をオフに。

私はsql VMでプロセスを実行しようとしましたが、例外なくすべて正常に動作しました。

+0

ここで私の答えをチェックしてください:https://stackoverflow.com/questions/42115390/communication-with-the-underlying-transaction-manager-has-failed-msdtc/45485690#45485690 –

答えて

0

実際、数日の検索と調査の後、問題の根本が見つかりました。問題は、2台のマシンが純粋なBIOS名でピン指定できないということでした。 IPだけがpingできました。 pingの問題を修正した後。すべてうまくいった。

関連する問題