より高い負荷(1秒あたり10以上のリクエスト)でmvc + ef + unityアプリケーションでランダムエラー(1日あたり数回)が発生しています:
- 接続が閉じられていません/接続の現在の状態は接続中です
- カウントクエリのデッドロック(明示的なトランザクションなし)
- 同じキーのアイテムはすでに追加されています。DbContextの解決中にSystem.Data.Entity.DbContext.SetTEntityで
- リモートホストが接続を閉じました。エラーコードは0x80070057です
- このコマンドに関連付けられている開いているDataReaderがすでにあり、最初に閉じる必要があります。-これを取り除くためにMARSをオンにしました(MARSがなくても正しく機能するはずですが、ネストされたクエリはありません)。これにより、別のランダムエラーが発生する可能性があります。
- セッションがシングルユーザーモードのときにクライアントドライバーが複数の要求を送信したため、サーバーは接続を切断します。
私はこのPerRequestLifetimeManagerの実装を使用し、Unity.Mvc3も違いなく試しました。
DbContextが正しく破棄されていないというヒントがいくつかあります。 リクエストごとが問題の原因であるかどうかはわかりません。これは一般的な方法のようです。