MSDTCにはさまざまな記事がありますが、MSDTCの詳細な説明を見つけて、特定のシナリオでどのように設定する必要があるのかわかりません。MSDTCと分散コンピューティング
これは私のシナリオです。私はいくつかのWCFサービスを箱A、箱B上で動作するSQLサーバ、箱C上のテストソリューションで動作させています。私のテストでは(箱C)最終的にデータベースに書き込むいくつかの作業を行います。テスト(ボックスC)と同じボックスにあるSQLデータベースを使用してこれらのテストを実行すると、すべてがうまく動作し、誰もが満足しています。ただし、ボックスBのSQLサーバーデータベースを指すようにテストソリューションを変更すると例外が発生します。
分散トランザクションマネージャ(MSDTC)のネットワークアクセスが無効になっています。コンポーネントサービスの管理ツールを使用して、MSDTCのセキュリティ構成でネットワークアクセス用のDTCを有効にしてください。
私が持っている質問の1つは、テストボックス(ボックスC)でMSDTCを有効にしていないということです。ここでローカルでデータベースを使ってテストを実行すると、なぜこの例外がスローされないのですか? MSDTCを有効にする必要がある場合は、3つすべてのボックス(A-B-C)で有効にする必要がありますか?
ありがとうございます!
私はこのページに続き、SQLボックス(ボックスB)のすべてを設定しました。私もファイアウォールを介してDTCを許可しましたが、今私はこの例外が発生します:MSDTCトランザクションマネージャは、通信の問題のためにソーストランザクションマネージャからトランザクションを引き出すことができませんでした。考えられる原因は次のとおりです。ファイアウォールが存在し、MSDTCプロセスの例外がなく、2台のマシンがNetBIOS名で互いを見つけることができないか、ネットワークトランザクションのサポートが2つのトランザクションマネージャのいずれかで有効になっていません。 – 5StringRyan
ボックスA/CでMSDTCネットワークアクセスが有効になっていますか? – Cliffboss
ファイアウォール内のすべての人のためにMSDTCを有効にしました。私が言及することを忘れた1つの更新は、サービスボックスとSQLボックス(AとB)は同じドメインにあり、テストボックス(ボックスC)は別のドメインにあります。 – 5StringRyan