gpt4 book ai didi

asp.net - 如果我在 ASP.NET 网页中保持数据库连接打开会发生什么

转载 作者:太空狗 更新时间:2023-10-30 01:46:30 24 4
gpt4 key购买 nike

假设我有一个 ASP.NET 页面。在页面加载事件处理程序中,我打开一个数据库连接并进行一些处理。但是在处理完成后,我并没有通过调用连接对象的 CLOSE 方法显式关闭连接。

现在当服务器端的页面处理完成后,GC 将处理我页面中的所有变量,以及连接对象。但是在处理的时候,之前打开的连接是不是自动关闭了?我的意思是,当GC处理连接对象时,它会自动关闭与数据库服务器建立的连接吗?还是简单的处理掉连接对象,数据库端的连接一直保持打开状态,直到数据库端连接超时,然后数据库服务器自己关闭连接?

最佳答案

MSDN documentation对此很清楚:

If the SqlConnection goes out of scope, it won't be closed. Therefore, you must explicitly close the connection by calling Close or Dispose. Close and Dispose are functionally equivalent.

要么使用 using block 让它自动处理,要么显式地 .Close() 它。 using block 是首选。

如果让连接保持打开状态,您的应用程序最终可能会在尝试新请求时耗尽连接,从而导致错误。我在调试的应用程序中遇到过这样的问题。最初的开发人员未能在几个页面上明确关闭连接,并且流量高到用户开始收到错误。我将有问题的连接包装在 using block 中,问题就消失了。

关于asp.net - 如果我在 ASP.NET 网页中保持数据库连接打开会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com