2016-04-11 27 views
1

Bu yüzden bir COM DLL dosyası biçiminde bir yazılım programı devraldım. (Kaynak kod yok, sadece setup.exe)Bağlantı havuzunda bağlantıları serbest bırakma.

DLL, ADO.NET aracılığıyla Active Directory'ye bağlanır ve bir kullanıcının kimliğini doğrulamak için bir yöntemle bir dizgeyi geri geçirir. (Bu, en fazla bir saniye sürer)

Sorun, her kullanıcı için kimliği doğrulanmış, bağlantı havuzunda bir bağlantı açar, ancak görünüşte kapatılmaz. Böylece, 100 denemeden sonra şu hatayı alıyorum:

"Zaman aşımı süresi doldu. Havuzdan bağlantı elde etmeden önce zaman aşımı süresi doldu. Bu, tüm havuzlanmış bağlantılar kullanımda olduğundan ve maksimum havuz boyutuna ulaşıldığından dolayı meydana gelmiş olabilir."

Soruma Soru: Bağlantı havuzunu 100'e ulaştığında nasıl sıfırlarım? Max bağlantı sayısını değiştirebileceğim bir kayıt defteri ayarı var mı? Belki her saat çalışan bir senaryo yazıp, havuzu temizleyin? İdeal olarak kaynak kodunun olması, bağlantı dizesini doğru parametrelerle düzeltmek güzel olurdu, ancak bu burada mevcut değil.

Herhangi bir öneriniz .....

cevap

2

bunu kullanarak yapılır sonra bağlantıyı kapatmak emin olun. Açıkça yürütülür

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

Ya

kullanarak bloğunun içinde kod kez bağlantıyı kapatmadan ilgilenir using blok kullanmak kapatma yöntemini çağırabilirsiniz

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

using Açıklama, bağlantıyı bertaraf etmeye de dikkat edecektir.

İlgili konular