このasp.netでは、デッドロックが発生する可能性があります。コードがそれらを適切に処理することを確認したいので、デッドロックをトリガーする NUnit テストを作成しようとしています.....
DAO はエンティティごとに分割されます。各エンティティには一連のテストがあり、これらは Startup() および Teardown() メソッドで囲まれています。これらのメソッドは、トランザクション スコープを作成し、テストが完了した後にロールバックします。これは他のすべての場合にうまく機能しますが、デッドロックにはまったく役に立ちません。
TransactionScope と SQL2000 (つまり、MSDTC が関係している) を使用して、確実に再現できる "デッドロック" テストをセットアップして実行するにはどうすればよいですか? 詳細: 2 人のユーザーが異なる特定のデータ値を使用して 2 つの関数を呼び出すと、デッドロックが発生する状況があることはわかっています。NUNIT内でこれをシミュレートするにはどうすればよいですか?そしてデッドロックを常に発生させますか?
はい、私は「そもそもデッドロックが発生するのを止めてみませんか」という行動計画から始めましたが、デッドロックが発生する可能性のあるコードを制御することはできません。関数を呼び出すだけで、デッドロックが発生する可能性があります。 .