.net - 出错后不关闭数据库连接会有什么后果?

标签 .net sql sql-server sql-server-2005 web-services

我有一个让我很头疼的应用程序。它是一个通过 Web 服务连接到 SQL Server 2005 的 .NET 应用程序。该程序的网格中充满了容易超时的长时间运行的存储过程。在超时并抛出 SqlException 的情况下,没有执行处理来关闭连接。

这种情况的实际后果是什么?我认为框架或 SQL Server 可能会以某种方式处理它,但我不确定。

添加 该程序在早上总是运行良好,但使用一个小时左右后,它基本上就停止运行了。问题不是我不知道如何正确编码连接。我需要知道这些症状是否是由未关闭的连接引起的。更改生产代码是一件大事,我想知道这至少有可能成为问题。

结论 我设计了在数百个同时连接上发生此故障的方法。我从未能够在应用程序环境中重现故障情况。将最佳实践答案标记为正确。谢谢大家。

最佳答案

由于 SqlConnection 在处置时关闭,因此我通常使用此语法

using (SqlConnection conn = new SqlConnection())
{
  // SqlCode here 
}

关于.net - 出错后不关闭数据库连接会有什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/144246/

相关文章:

C# - 在没有引用的情况下使用依赖注入(inject)时将 dll 复制到 exe 输出目录?

.net - jqGrid - 如何配置 jsonreader(与 Jayrock 一起使用)?

Java - 使用通用参数调用存储过程

c# - 使用 LINQ 连接连接表中的列

.net - ORA-01425 : escape character must be character string of length 1

.net - WCF官方教程中的[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]是什么意思?

sql - Oracle 11g - 使用 RegEx 检查约束

SQL ON DELETE CASCADE 不起作用

SQL表设计问题

php - 如何使用 PHP ODBC 客户端捕获 print 语句生成的 T-SQL 输出?