2016-04-11 135 views
1

所以我繼承了一個COM DLL形式的軟件程序。 (沒有源代碼,只是setup.exe)釋放連接池中的連接。

該DLL通過ADO.NET連接到Active Directory,並通過一個方法傳回一個字符串以認證用戶。 (這最多需要一秒)

問題是,對於每個用戶進行身份驗證,它會在連接池中打開一個連接,但看起來並沒有關閉它。 100次嘗試後,因此我得到的錯誤:「超時時間已超時時間已過之前從池中獲取一個連接出現這種情況可能是因爲所有池的連接正在使用,並且達到最大池大小」

我的問題是:如何在連接池達到100時重置連接池? 有沒有可能的註冊表設置,我可以改變最大連接數? 也許寫一個腳本,每小時運行一次,並清除池? 理想情況下,使用源代碼會很好,可以使用正確的參數修復連接字符串,但在此處不可用。

任何建議.....

回答

2

請確保在完成使用後關閉連接。您可以顯式調用close方法

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

或者

使用using塊,將採取關閉使用塊中一旦代碼連接的護理執行

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

using聲明將負責處理連接。