2016-04-11 20 views
1

私はCOM DLLの形でソフトウェアプログラムを継承しました。 (ソースコードなし、setup.exeのみ)接続プール内の接続の解放。

DLLはADO.NETを介してActive Directoryに接続し、ユーザーを認証する方法で文字列を戻します。

問題は、各ユーザーが認証されるたびに、接続プール内で接続を開きますが、一見それを閉じないということです。したがって、100回の試行の後、私はエラーを取得する:

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

私の質問は、接続プールが100に達したときにリセットする方法ですか? 接続の最大数を変更できるレジストリ設定はありますか? 1時間ごとに実行され、プールをクリアするスクリプトを作成することはありますか? 接続文字列を正しいパラメータで修正するのが理想的ですが、ここでは使用できません。

任意の候補.....

答えて

2

使用終了後、必ず接続を閉じてください。あなたは明示的に実行され

//do something with the conn 
conn.Close(); 

それとも

を使用してブロック内のコード一度接続を閉じるの世話をするusingブロックを使用closeメソッドを呼び出すことができます

using(var conn=new SqlConnection("YourConnectionStringHere")) 
{ 
    conn.Open(); 
    // do something 
} 

using接続を破棄するためのステートメントもあります。