残念ながら、MSDTC は実際に設定するのが難しい場合があります。ただし、一度実行すると、美しく機能します。問題が発生するのは、すべてのネットワーク設定がほんの少し異なるためです。
クライアント マシンまたはサーバーで MSDTC サービスが有効になっていない可能性があります。
Windows 7 で有効にするためのガイドは次のとおりです。 --> http://www.thereforesystems.com/turn-on-msdtc-windows-7/
DB サーバーでも有効にする必要があります: --> http://support.microsoft.com/kb/817064
サーバー管理者に連絡せずに動作するかどうかをテストする簡単な方法は、開発ボックスに 2 つの異なるローカル データベースをセットアップすることです。次に、両方のデータベース接続でトランザクションを維持しようとします。msdtc を正しく構成したと仮定すると、すべて正常に動作するはずです。
最後のポイントは、System.Transactions ライブラリを参照し、次のようなトランザクション コードを使用することで、作業を少し楽にすることができるということです。
using (TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
SomeMethod();
scope.Complete();
}
明示的なロールバックは必要ないことに注意してください。using ステートメント内で何かがクラッシュした場合、または .Complete(); を押す前に using ステートメントを終了した場合、トランザクションはロールバックします。TransactionScope の詳細については、次を参照してください。 --> http://msdn.microsoft.com/en-us/library/ms172152(VS.90).aspx