アプリケーションで次のエラーが発生しました。
「タイムアウトが期限切れになりました。プールから接続を取得する前にタイムアウト期間が経過しました。これは、プールされたすべての接続が使用中であり、最大プールサイズに達したために発生した可能性があります。」
何も考えずに、web.configでコンパイルdebug="true"をコンパイルdebug="false"に変更しました。
問題は突然消えました。コンパイルデバッグとプールサイズの間に関係はありますか?
アプリケーションで次のエラーが発生しました。
「タイムアウトが期限切れになりました。プールから接続を取得する前にタイムアウト期間が経過しました。これは、プールされたすべての接続が使用中であり、最大プールサイズに達したために発生した可能性があります。」
何も考えずに、web.configでコンパイルdebug="true"をコンパイルdebug="false"に変更しました。
問題は突然消えました。コンパイルデバッグとプールサイズの間に関係はありますか?
接続リークの問題のようです。使用後は常に接続を閉じる/破棄することが重要です。そうしないと、それらは接続プールに返されません (または返される速度が遅すぎます)。
次のような接続を持つステートメントを常に使用していることを確認してください。
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = "mysp_GetValue";
command.CommandType = CommandType.StoredProcedure;
connection.Open();
object ret = command.ExecuteScalar();
}