我们有一个由IIS7托管的asp.net网站。该网站通常没有任何问题。
但过了一段时间,比如1或2个月,网站连接到的Sybase数据库会在任何应用程序访问时产生此错误:Maximum number of connections already opened
起初我们没有意识到导致这种情况的是网站的应用程序池,所以我们重新启动数据库,一切都恢复正常。
但是第二次,第三次......我们意识到我们只需要重新启动应用程序池就可以释放那些未发布的连接。
我检查了源代码,只有一个地方有数据库连接代码,它是一个非常简单的代码连接到数据库,得到结果然后关闭它:
con.open()
x = con.getdata()
con.close
顺便说一句,在查看应用程序的日志后,没有任何错误或异常,所以我非常确定con.close
可能已达到并执行。
因此,如果我们可以排除源代码中存在未关闭连接的可能性,是否还有其他解释?