[英]What will it be if SqlConnection.Close() or SqlConnection.Dispose() is not called?
我刚刚发现我公司的一个ASP.NET
Web应用程序将连接到SQL Server 2008 R2
数据库以读取/写入数据,但在代码的某些部分,从不调用SqlConnection.Close()
和SqlConnection.Dispose()
使用连接后。
从MSDN, SqlConnection类 :
如果SqlConnection超出范围,则不会关闭。 因此,您必须通过调用Close或Dispose显式关闭连接。
我使用sp_who
并发现当我通过Web应用程序执行某些数据库访问时,会创建越来越多的连接。 但几分钟后,一些连接似乎被取消了。
是否有任何.Net
运行时完成处理这样的情况,不调用SqlConnection.Close()
和SqlConnection.Dispose()
? 是否存在影响性能和稳定性的潜在问题?
它会好的,你不会在一段时间内得到任何错误。 当您的应用程序运行时,每次打开SQL连接并使其保持非关闭状态,在某段时间后,当您尝试打开新的SQL连接时,SQL连接池将变满并且系统会引发连接池溢出错误。
因此,请始终在函数中保持连接关闭代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.