繁体   English   中英

如果没有调用SqlConnection.Close()或SqlConnection.Dispose(),它会是什么?

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

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