0

Mosso でホストされている ASP.NET MVC アプリケーションを実行していますが、中程度の信頼ですべてを実行しているため、DTC を有効にできないとのことです。

そのため、TransactionScope を参照するコードを実行すると、次のエラーが発生します。トランザクション マネージャは、リモート/ネットワーク トランザクションのサポートを無効にしました。(HRESULT からの例外: 0x8004D024)

とにかくこれを回避する方法はありますか?

4

1 に答える 1

0

複数のデータ コンテキストを使用していますか? TransactionScope 内で単一のデータ コンテキストを使用しても、トランザクションが分散トランザクションに昇格されることはありません。複数のデータ コンテキストを使用している場合は、それらが同じ接続を共有していることを確認してください。接続を共有すると、スコープに関連付けられたトランザクションが取得され、単純に使用されると思います。そうでない場合は、コンテキストでトランザクションを明示的に設定する必要がある場合があります。

 using (var ts = new TransactionScope())
 {
      using (var dcOuter = new FooDataContext())
      {
           using (var dcInner = new BarDataContext( foo.Connection ))
           {
              ....
           }
      }
      ts.Complete();
 }
于 2010-02-03T21:21:13.330 に答える