C# SQL Server:已达到最大池大小

C# SQL Server:已达到最大池大小,c#,sql-server,ado.net,C#,Sql Server,Ado.net,每当应用程序池被回收时,我在从c#应用程序连接SQL Server时发现以下错误。我已经检查了当收到此错误时,尽管实际限制是200(我在web.config中设置),但数据库中只打开了20个连接 此外,连接在代码中正确关闭,这样就不会有问题。请注意,这并不是每次池回收时都会发生,而是发生在我们系统有流量的一天 System.InvalidOperationException:超时已过期。超时时间 从池中获取连接之前已过。这可能有 发生的原因是所有池连接都在使用中,并且池大小最大 联系到了。在 S

每当应用程序池被回收时,我在从c#应用程序连接SQL Server时发现以下错误。我已经检查了当收到此错误时,尽管实际限制是200(我在web.config中设置),但数据库中只打开了20个连接

此外,连接在代码中正确关闭,这样就不会有问题。请注意,这并不是每次池回收时都会发生,而是发生在我们系统有流量的一天

System.InvalidOperationException:超时已过期。超时时间 从池中获取连接之前已过。这可能有 发生的原因是所有池连接都在使用中,并且池大小最大 联系到了。在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection、TaskCompletionSource
1重试、DbConnectionOptions
用户选项、DbConnectionInternal oldConnection、DbConnectionInternal&
连接)在
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
外部连接,数据库连接工厂连接工厂,
TaskCompletionSource
1重试,数据库连接选项用户选项)位于 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection 外部连接,数据库连接工厂连接工厂, TaskCompletionSource
1重试,DbConnectionOptions用户选项)位于
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 重试)在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 重试)在System.Data.SqlClient.SqlConnection.Open()处 System.Data.SqlClient.SqlConnection.Open()


每次打开连接时,请确保必须将其关闭


每次打开连接时,请确保必须将其关闭

试试这个:

    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;
    }
试试这个:

    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;
    }

谢谢,darkwood,但是我已经提到了连接在代码中是正确关闭的。我已经在finally块中关闭了它。这很好,但我更喜欢在成功完成操作或发布错误之前立即关闭连接。谢谢你,达克伍德,但我已经提到了连接在代码中是正确关闭的。我已经在finally块中关闭了它。这很好,但我更喜欢在成功完成操作或发布错误之前立即关闭连接。谢谢