C# 除了并发连接的总数之外,还有什么会导致应用程序无法从池中获取连接?

C# 除了并发连接的总数之外,还有什么会导致应用程序无法从池中获取连接?,c#,sql-server-2008,C#,Sql Server 2008,我看到以下错误: 超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小 根据netstat的数据,我的机器总共有7个活动连接(其中3个来自sqlservermanagementstudio),但是这个应用程序实例无法建立连接 我们已经审核了所有代码,以确保每个SqlConnection都使用块处于中,并在同一台机器上启动同一应用程序的新实例(而损坏的实例仍处于损坏状态) 我还可以看什么来诊断问题的原因?可能是某些地方正在进行一些过于狂热

我看到以下错误:

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

根据netstat的数据,我的机器总共有7个活动连接(其中3个来自sqlservermanagementstudio),但是这个应用程序实例无法建立连接

我们已经审核了所有代码,以确保每个
SqlConnection
都使用
块处于
中,并在同一台机器上启动同一应用程序的新实例(而损坏的实例仍处于损坏状态)


我还可以看什么来诊断问题的原因?可能是某些地方正在进行一些过于狂热的防火墙,或者可能是代码中的某些内容?

您使用的是SqlDataReader吗?SqlCommand?如果是,请确保这些也在使用块中。本质上,任何实现IDisposable的东西都应该在using块中。您可以在SQL Server上运行
sp_who
sp_who2
?返回了多少行?@Jeff Yep,所有内容都经过了代码检查,并且在任何地方都使用了
——如果连接池真的用完了,我希望perfomon/netstat会显示更多的活动连接。