24

.NET では、TransactionScope がタイムアウトになり、VoteCommit (VoteRollback ではなく) になる可能性があることを読んだ (またはおそらく同僚から聞いた) ことがあります。これは正確ですか、それとも伝聞ですか?この問題について話している Web 上の情報を追跡できませんでした (問題である場合)。

4

2 に答える 2

30

Marc Gravell が説明した動作は、.Net 4.0 で変更されました。操作が自動コミットされる代わりに、InvalidOperationException がスローされるようになりました。そのため、4.0 では Explicit Unbind を使用する必要がなくなりました。

于 2010-08-19T23:46:34.130 に答える
27

SQL Server に関して言えば、接続文字列で修正できる問題があります。私の返信はこちらか、詳細はこちらをご覧ください。

短いバージョンは次のとおりですTransaction Binding=Explicit Unbind;。接続文字列に含まれていることを確認してください。

実際には投票コミットを行っているわけではありません - トランザクション (および初期の操作) はロールバックされていますが、後続の操作 (まだ 内にあるTransactionScope) は nul トランザクション、つまり自動コミットで実行できます。

于 2008-10-12T12:25:28.540 に答える