高トラフィック時のみのTableAdapterエラー
-
03-07-2019 - |
質問
tableAdaptersを多用する他のプロジェクトに取り組んでいます。サイトは機能しますが、定期的にイベントログにエントリが追加されます。
" ExecuteReaderを開くには、 利用可能な接続。接続の 現在の状態は接続中です。 "
サイトは例外をスローしませんが、トラフィックが多い(1秒あたり5件以上のリクエスト)場合を除き、例外は同じで、次のコード行を指します:
this.Adapter.Fill(dataTable);
スタックトレース:at System.Data.SqlClient.SqlConnection.GetOpenConnection(String メソッド)at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String メソッド、SqlCommandコマンド)
このエラーを停止するにはどうすればよいですか?ありがとう。
エラーがスローされる場合、エラーの半分だけが表示されていました:
"既に開いているDataReaderがあります このコマンドに関連付けられている 最初に閉じる必要があります。"
解決
おそらく同じ接続を複数の目的に使用しており、そのうちの1つが別のスレッドによって閉じられていると思います。
何が起こっているのかを把握するために、トレースを追加することをお勧めします。この種のエラーをデバッグすることは困難です。本番環境でのみ発生するエラーです:(
他のヒント
データベースへのオープン接続の許可された数を超えたように思える場合。これは、最小プールサイズと最大プールサイズの値を指定することにより、接続文字列で設定できます。デフォルトは、最小プールサイズの場合は0、最大プールサイズの場合は100だと思いますが、よくわかりません。
変更してみて、役立つかどうかを確認してください。