マイクロソフトのサイトでは、この回避方法を説明しているが、根本的な原因が説明されていなかった。通常「SQL Server デバッグ」のチェックを行っておくのかどうかが分からないが、問題はあるのだろう。
不可解なのは、ユーザコネクションが3程度で、「タイムアウトに達しました。プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プール サイズの制限値に達した可能性があります。」が表示されていること。原因は他のことと想定される。
★下記のMSのサイトを良くみると、「この動作は仕様です 」と書かれていた。チェックして使用する場合は、ソースへの記述が必要とのこと。
~以下、他のサイトからの情報~
Microsoft Visual Studio .NET 2003 で SQL Server のデバッグ機能を有効にした後、アプリケーションを実行すると、次のエラー メッセージが表示されます。
タイムアウトの時間切れです。プールから接続を取得する前にタイムアウト期間が過ぎました。プールされた接続がすべて使用中で、プール サイズの制限値に達した可能性があります。
http://support.microsoft.com/kb/830118/ja
コネクションもデータリーダもクローズしているのにどんどん
プールしている数が増えていって、同様に100を超えた時点で、
上限を超えた旨のメッセージが吐かれて、終了してました。
コマンドオブジェクトの破棄を行わない場合、プーリング数が増える一方だった
のに対し、破棄を行った場合、増えた分はきっちり減少し改善されました。
(エラーはもちろん発生しなくなりました。)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7927&forum=7