Asp.net 连接池已满

Asp.net 连接池已满,asp.net,c#-4.0,ado.net,iis-7.5,Asp.net,C# 4.0,Ado.net,Iis 7.5,在我的IIS服务器中,我有许多应用程序池(如6到7个),每个应用程序池上都运行着许多ASP.NET应用程序(例如,每个池25个应用程序)。它们都通过ADO.NET与Oracle数据库连接 所有的应用程序都运行良好,但有时我们会出现如下错误 超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小 我知道这样做的可能性,就像我们没有正确关闭数据库连接一样。这是我的头痛。。。我不想每一个项目都去看我们忘记关闭连接的地方,这对我们来说是非常耗时的

在我的IIS服务器中,我有许多应用程序池(如6到7个),每个应用程序池上都运行着许多ASP.NET应用程序(例如,每个池25个应用程序)。它们都通过ADO.NET与Oracle数据库连接

所有的应用程序都运行良好,但有时我们会出现如下错误

超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小

我知道这样做的可能性,就像我们没有正确关闭数据库连接一样。这是我的头痛。。。我不想每一个项目都去看我们忘记关闭连接的地方,这对我们来说是非常耗时的任务


那么,有没有办法确定哪些应用程序连接保持打开状态?我们能从IIS本身看出来吗?我们可以做一些实用程序来跟踪哪个项目连接保持打开状态吗?

我不确定这是否是数据库连接的问题。我认为您的应用程序没有处理上下文,那么垃圾收集器就无法清除内存。您可以尝试减少重新连接应用程序池的时间,然后检查内存使用是否在减少。

您能提供准确的错误/异常文本吗?嘿,laylarence谢谢您的回复,我们收到了这样的消息“超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小。“这篇文章详细介绍了如何观察打开的连接:我担心你只需要检查一下,看看你是否在任何地方错误处理了连接。这就是为什么集中您的数据访问、提取尽可能多的重复逻辑并验证您是否在必须实际访问数据库的位置正确处理它们是如此重要。通过检查打开的连接,你也许可以猜出坏代码在哪里……但很可能这需要大量的侦探工作。大家好,请给我一个最好的方法来缩短它。