如果我在ASP.NET网页中打开数据库连接会发生什么
假设我有一个ASP.NET页面.在页面加载事件处理程序中,我打开数据库连接并进行一些处理.但是在完成处理之后,我不会通过调用连接对象的CLOSE方法显式关闭连接.
现在,当服务器端的页面处理完成时,GC将处理我页面中的所有变量,以及连接对象.但是当它被丢弃时,先前打开的连接是否会自动关闭?我的意思是,当GC处理连接对象时,它会自动关闭与数据库服务器建立的连接;或者它只是处理连接对象,并且数据库中的连接保持打开状态,直到数据库中发生连接超时,然后数据库服务器自行关闭连接? 解决方法
MSDN documentation对此很清楚:
要么使用using块来自动处理,要么显式地处理它.Close()它.使用块是优选的. 通过保持连接打开,当尝试新请求时,您的应用程序最终可能会耗尽连接,从而导致错误.我在调试的应用程序中遇到了这样的问题.原始开发人员未能在几页上明确关闭连接,并且流量足够高,用户开始收到错误.我在一个使用区块中包装了有问题的连接,问题就消失了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Dropzone没有绑定到模型
- asp.net-mvc – BestPractices:在MVC-Controller中使用多个
- asp.net – 如何使用Visual Studio的内置SQL服务器?
- 用AJAX实现的无刷新的分页实现代码(asp.net)
- Owin.IAppBuilder在asp.net中不包含“MapSignalR”错误的定
- ASP.NET Web API v2并使用E??LMAH记录所有错误/异常
- asp.net-mvc – 如何在Controller外访问RequestContext?
- 将ASP.NET标识存储库移动到EF Sql数据库
- asp.net – 当我的模拟帐户被锁定时,如何防止显示用户名和密
- asp.net-mvc – 如何为MVC创建自定义验证属性
- [译]ASP.NET Core 2.0 网址重定向的方法
- asp.net-mvc-5 – 在禁用的TextBoxFor中只读是什
- asp.net下Repeater使用 AspNetPager分页控件
- asp.net-mvc – 在VS2012中调试MVC应用程序尝试启
- asp.net-mvc – MVC @model的含义
- 在asp.net后面的代码中创建javaScript变量
- asp.net – 如何在转发器中绑定gridview?
- asp.net核心 – ASP – 启动时核心迁移EF核心SQL
- 在mono xsp上托管asp.net – raspberry pi
- asp.net-mvc – 在Asp.Net MVC中使用混合身份验证