2016-07-06 3 views
1

から接続を取得するには、経過タイムアウト時間:ASP - 前に、私は次のエラーでトラブルを抱えているプール

"Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached."

エラーは、次のコードブロックであると思われる:

da = new SqlDataAdapter(command); 
command.CommandTimeout = 100; 
da.Fill(dt); 
conn.Close(); 
return dt; 
+0

おそらくコマンドと接続をusingステートメントで囲む必要があります。それはあなたの接続が漏れるのを助けることができます。 –

答えて

0

あなたの質問にこのような少量のコードで言うのは難しいですが、このエラーはdb接続オブジェクトを適切に処分していないときに発生します。 "using"ステートメントは、この問題からあなたを助けるかもしれません。同じエラーメッセージとコード例があるSO問題があります:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool.これは役に立つかもしれません。

0

完了したら接続を開いて終了しないと、上記のエラーが表示されます。アプリケーションプールのサイズ制限があるため、制限を超えた後はエラーが表示されます。

したがって、メソッドの完了後に接続を閉じるようにしてください。 当面はweb.configファイルの最大プールサイズを1000以上に設定することができます。

+0

私が得意でないのは、コードにconn.Close()が既にあるということです。それではなぜクローズド接続ではない可能性がありますか? –

+0

あなたのサイトに複数のセッションがあり、開いた後に毎回接続を終了していない場合は、アプリケーションプールの問題になります。あなたは現在の接続について教えていますが、開いている状態のすべてのデータベース接続、ちょうどsp_who2コマンドを実行すると、すべての接続に関する情報が表示されます。 –

関連する問題