質問

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だと思いますが、よくわかりません。

変更してみて、役立つかどうかを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top