[英]Releasing connections in a connection pool.
因此,我以COM DLL的形式继承了一个软件程序。 (没有源代码,只有setup.exe)
DLL通过ADO.NET连接到Active Directory,并通过一种方法返回字符串以验证用户身份。 (最多需要一秒钟)
问题是,对于每个通过身份验证的用户,它都会在连接池中打开一个连接,但似乎没有关闭它。 因此,经过100次尝试,我得到了错误:
“超时到期。在从池中获取连接之前已经经过了超时时间。这可能是因为所有池化连接都在使用中,并且已达到最大池大小。”
我的问题是:当连接池达到100时,如何重置? 可能有一个注册表设置可以更改最大连接数吗? 也许编写一个每小时运行一次的脚本并清除池? 理想情况下,使用源代码可以用正确的参数来修复连接字符串,这很好,但是此处不可用。
有什么建议么.....
使用完毕后,请确保关闭连接。 您可以显式调用close方法
//do something with the conn
conn.Close();
要么
使用using
块,它将在执行using块中的代码后负责关闭连接
using(var conn=new SqlConnection("YourConnectionStringHere"))
{
conn.Open();
// do something
}
using
语句也将照顾到处置连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.