繁体   English   中英

SQL Server:已达到最大池大小

[英]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(TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource )处的System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM