我有一个让我很头疼的应用程序。它是一个通过 Web 服务连接到 SQL Server 2005 的 .NET 应用程序。该程序的网格中充满了容易超时的长时间运行的存储过程。在超时并抛出 SqlException 的情况下,没有执行处理来关闭连接。
这种情况的实际后果是什么?我认为框架或 SQL Server 可能会以某种方式处理它,但我不确定。
添加 该程序在早上总是运行良好,但使用一个小时左右后,它基本上就停止运行了。问题不是我不知道如何正确编码连接。我需要知道这些症状是否是由未关闭的连接引起的。更改生产代码是一件大事,我想知道这至少有可能成为问题。
结论 我设计了在数百个同时连接上发生此故障的方法。我从未能够在应用程序环境中重现故障情况。将最佳实践答案标记为正确。谢谢大家。
最佳答案
由于 SqlConnection 在处置时关闭,因此我通常使用此语法
using (SqlConnection conn = new SqlConnection())
{
// SqlCode here
}
关于.net - 出错后不关闭数据库连接会有什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/144246/