繁体   English   中英

释放连接池中的连接。

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM