2016-04-11 99 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声明将负责处理连接。