【发布时间】:2011-06-15 11:53:07
【问题描述】:
超时。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中并且已达到最大池大小。
这是我很久以前开发的第一个 ASP.net 网站,它在很多页面的顶部(和很多方法)都有这段代码。
cn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
cn.Open();
很多页面没有:
cn.Close();
也没有一个页面做using(SqlConnection...),(尽管所有的数据阅读器都在使用块)。
第一个问题是,错误的主要候选者是?
第二个问题是,解决此重构/手动搜索未关闭连接的最佳方法是什么?我知道这是一个丑陋的 hack,但是重构所花费的时间会很长,但是我们可以设置一个计划任务,每天凌晨 3 点回收一次连接池吗?
【问题讨论】:
标签: c# asp.net iis-7 database-connection connection-pooling