关于监视SqlConnection状态的问题
if (Conn.State != ConnectionState.Open)
{
try
{
Conn.Open();
}
catch
{
System.Web.HttpContext.Current.Response.Write("网站数据库服务器正在维护中,请稍候重试。");
System.Web.HttpContext.Current.Response.End();
}
}
以上是我用来作数据库open的监视语句,在正常情况下,如果open失败的话,就会提示“网站数据库服务器正在维护中,请稍候重试。”
但如果页面刷新过一次,完成了.net的加载并显示出数据后,数据库突然关闭后再次刷新页面就会提示:
"在从服务器接收结果时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 系统无法打开文件。) "
提示行居然是SqlCommand的ExecuteReader();行,
想问一下除了try SqlCommand的ExecuteReader() 外还有别的什么更好的错误过滤方式,如上面代码那个核实某个状态后提示信息呢?
...全文
相关推荐
【ASP.NET编程知识】.NET连接池的问题详解.docx
不过,如果该连接在执行 Fill 或 Update 方法时已经处于打开状态,那么,ADO.NET 在方法执行完成后不会关闭 SqlConnection。
sql_monitoring:监视和解决SQL Server问题的工具
`sql_monitoring` 是一个专用于监视和解决SQL Server问题的工具,它可以帮助数据库管理员实时跟踪和诊断系统性能,确保数据库高效稳定运行。
.NET 数据库连接池
如果开发者忘记了关闭SqlConnection,那么这些连接可能会保持打开状态,久而久之会导致孤立连接的积累,进而耗尽服务器资源,影响应用程序性能。监视连接数是使用连接池时的一个重要实践。
asp.net运行提示未将对象引用设置到对象的实例错误解决方法
七、监控和调试技巧:当异常发生时,应该为每个可疑的地方添加监视。最初可能会怀疑是SQL语句错误,但即便更换了SQL语句,问题仍然存在。根据Google搜索结果,对象的重定义也可能导致异常。
个人文档资料-asp.net手记
因此,应尽量减少长时间运行的事务,及时提交或回滚事务,以保持连接池的健康状态。同时,定期检查和监控连接池的状态,以便发现并解决潜在的问题。


