【问题标题】:ASP.NET Connection Pool Problem?ASP.NET 连接池问题?
【发布时间】:2011-04-23 06:23:27
【问题描述】:

我在 asp.net 网页中的每个 Insert、Update、Delete 和 Select 方法中创建 SqlConnection 对象。然后我关闭 finally 块中的连接对象。但我不确定这是一个好方法。这是连接池的问题吗?

您对我如何使用 SqlConnection 和 SqlDataReader 对象有什么建议吗?

谢谢。

【问题讨论】:

  • 您是否遇到错误或发现泄漏?
  • 是的,我收到此错误:超时已过期。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中并且达到了最大池大小。这是关于我创建了这么多 sqlconnection 对象。 (我关闭每一个)
  • 如果您收到此错误,并且您确定关闭了每个连接和数据读取器,那么您可能需要检查是否有其他可能导致您收到此错误。

标签: asp.net ado.net sqldatareader sqlconnection


【解决方案1】:

在 finally 块中关闭连接是您想要做的。另一种方法是使用Using 语句。 Using 将适用于任何实现 iDisposable 的对象,包括 sqlconnection,并且无论是否有异常,都会在完成时对对象调用 dispose。

【讨论】:

    【解决方案2】:

    如果您确定要关闭 SQLConnection,那么我还会检查您的 SQLDataReader 并确保您正在关闭它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2011-04-01
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多