[英]SQL Server: Max pool size was reached
每当应用程序池被回收时,我都会在从c#应用程序连接SQL Server时观察到以下错误。 我已经检查过这个错误收到的时候,数据库中只打开了20个连接,尽管实际限制是200(我在web.config中设置)。
此外,连接在代码中正确关闭,因此不会成为问题。 请注意,每次游泳池回收时都不会发生这种情况,但在我们的系统有交通的一天中就会发生。
System.InvalidOperationException:超时已过期。 从池中获取连接之前经过的超时时间。 这可能是因为所有池连接都在使用中并且达到了最大池大小。 在System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(的DbConnection owningConnection,TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1重试,DbConnectionOptions USEROPTIONS )在System.Data.SqlClient.SqlConnection.TryOpen的System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
)处的System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
。 System.Data.SqlClient.SqlConnection.Open()上的System.Data.SqlClient.SqlConnection.Open()中的(TaskCompletionSource`1重试)
每次打开连接时,请确保必须将其关闭。
尝试这个:
SqlConnection cn = new SqlConnection(strCn);
try
{
using (SqlCommand cmd = new SqlCommand("select * from xxxx", cn))
{
cn.Open();
//do something
cn.Close();
}
}
catch (Exception exception)
{
cn.Close();
throw exception;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.