我刚发现我公司的一个ASP.NET
网络应用程序将连接到SQL Server 2008 R2
数据库以读取/写入数据,但在代码的某些部分,SqlConnection.Close()
和{{}使用连接后永远不会调用1}}。
来自MSDN,SqlConnection Class:
如果SqlConnection超出范围,则不会关闭。因此,您必须通过调用Close或Dispose来显式关闭连接。
我使用SqlConnection.Dispose()
并发现当我通过Web应用程序执行某些数据库访问时,会创建越来越多的连接。但几分钟后,一些联系似乎被取消了。
是否有sp_who
个运行时来处理.Net
和SqlConnection.Close()
未被调用的情况?是否存在影响性能和稳定性的潜在问题?
答案 0 :(得分:0)
它会好的,你不会在一段时间内收到任何错误。 当您的应用程序运行并且每次打开SQL连接并保持非关闭状态时,在您尝试打开新的SQL连接时,SQL连接池将在某段时间内变满并且系统会引发连接池溢出错误。
因此,请始终在函数中保持连接关闭代码。