2011-08-16 31 views
0

MSDTCにはさまざまな記事がありますが、MSDTCの詳細な説明を見つけて、特定のシナリオでどのように設定する必要があるのか​​わかりません。MSDTCと分散コンピューティング

これは私のシナリオです。私はいくつかのWCFサービスを箱A、箱B上で動作するSQLサーバ、箱C上のテストソリューションで動作させています。私のテストでは(箱C)最終的にデータベースに書き込むいくつかの作業を行います。テスト(ボックスC)と同じボックスにあるSQLデータベースを使用してこれらのテストを実行すると、すべてがうまく動作し、誰もが満足しています。ただし、ボックスBのSQLサーバーデータベースを指すようにテストソリューションを変更すると例外が発生します。

分散トランザクションマネージャ(MSDTC)のネットワークアクセスが無効になっています。コンポーネントサービスの管理ツールを使用して、MSDTCのセキュリティ構成でネットワークアクセス用のDTCを有効にしてください。

私が持っている質問の1つは、テストボックス(ボックスC)でMSDTCを有効にしていないということです。ここでローカルでデータベースを使ってテストを実行すると、なぜこの例外がスローされないのですか? MSDTCを有効にする必要がある場合は、3つすべてのボックス(A-B-C)で有効にする必要がありますか?

ありがとうございます!

答えて

3

MSDTCはデフォルトで有効になっていますが、ネットワークアクセスは無効です。

だから、クロスマシンで話すと失敗します。

ネットワークを有効にする必要があります。この記事を参照してください。

http://technet.microsoft.com/en-us/library/cc753510%28WS.10%29.aspx

私は一週間ほど前、この同じ問題を持っていたし、それは私のためにそれを修正しました。

+0

私はこのページに続き、SQLボックス(ボックスB)のすべてを設定しました。私もファイアウォールを介してDTCを許可しましたが、今私はこの例外が発生します:MSDTCトランザクションマネージャは、通信の問題のためにソーストランザクションマネージャからトランザクションを引き出すことができませんでした。考えられる原因は次のとおりです。ファイアウォールが存在し、MSDTCプロセスの例外がなく、2台のマシンがNetBIOS名で互いを見つけることができないか、ネットワークトランザクションのサポートが2つのトランザクションマネージャのいずれかで有効になっていません。 – 5StringRyan

+0

ボックスA/CでMSDTCネットワークアクセスが有効になっていますか? – Cliffboss

+0

ファイアウォール内のすべての人のためにMSDTCを有効にしました。私が言及することを忘れた1つの更新は、サービスボックスとSQLボックス(AとB)は同じドメインにあり、テストボックス(ボックスC)は別のドメインにあります。 – 5StringRyan

関連する問題