0

アプリケーションで次のエラーが発生しました。

「タイムアウトが期限切れになりました。プールから接続を取得する前にタイムアウト期間が経過しました。これは、プールされたすべての接続が使用中であり、最大プールサイズに達したために発生した可能性があります。」

何も考えずに、web.configでコンパイルdebug="true"をコンパイルdebug="false"に変更しました。

問題は突然消えました。コンパイルデバッグとプールサイズの間に関係はありますか?

4

1 に答える 1

2

接続リークの問題のようです。使用後は常に接続を閉じる/破棄することが重要です。そうしないと、それらは接続プールに返されません (または返される速度が遅すぎます)。

次のような接続を持つステートメントを常に使用していることを確認してください。

using (SqlConnection connection = new SqlConnection(connectionString))  
{  
    SqlCommand command = connection.CreateCommand();  

    command.CommandText = "mysp_GetValue";  
    command.CommandType = CommandType.StoredProcedure;  

    connection.Open();  
    object ret = command.ExecuteScalar();  
}  

詳細はこちら

于 2012-12-19T06:10:10.783 に答える