.net core IIS上的SQLConnection超时,而不是本地连接

.net core IIS上的SQLConnection超时,而不是本地连接,.net-core,iis-7.5,sqlconnection,.net Core,Iis 7.5,Sqlconnection,我在IIS 8.5上面临着奇怪的行为。在使用端点几次(5-6次)后,我收到一个错误:从池中获取连接之前的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小 我的代码是用NETCore3.1编写的,连接到SQLServer并尝试执行存储过程。它可以在本地处理任意数量的呼叫。已在本地验证没有引发异常 public int GetCount() { int jobCount = 0; using (SqlCommand com = new

我在IIS 8.5上面临着奇怪的行为。在使用端点几次(5-6次)后,我收到一个错误:从池中获取连接之前的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小

我的代码是用NETCore3.1编写的,连接到SQLServer并尝试执行存储过程。它可以在本地处理任意数量的呼叫。已在本地验证没有引发异常

 public int GetCount()
 {
        int jobCount = 0;
        using (SqlCommand com = new SqlCommand("dbo.GETCount", new SqlConnection(this.ConnectionString)) { CommandType = CommandType.StoredProcedure })
        {
            com.Parameters.Add(new SqlParameter("@jobCount", SqlDbType.Int) { Direction = ParameterDirection.Output });
            try
            {
                com.Connection.Open();
                com.ExecuteNonQuery();
                jobCount = (int)com.Parameters[0].Value;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                com.Connection.Close();
            }

        }

        return jobCount;
    }

有什么建议吗?

这是我的建议

  • 始终关闭最后一个块中的连接

  • 增加连接字符串中的池大小

    string connectionString=“数据源=本地主机;初始目录=北风;”+

    “集成安全性=SSPI;最小池大小=10;最大池大小=100”

  • 根本不要使用池

    string connectionString=“数据源=本地主机;初始目录=北风;”+

    “集成安全性=SSPI;池=false;”


  • 以下是我的建议

  • 始终关闭最后一个块中的连接

  • 增加连接字符串中的池大小

    string connectionString=“数据源=本地主机;初始目录=北风;”+

    “集成安全性=SSPI;最小池大小=10;最大池大小=100”

  • 根本不要使用池

    string connectionString=“数据源=本地主机;初始目录=北风;”+

    “集成安全性=SSPI;池=false;”


  • 如果正在使用“使用”块,是否需要finally块?Thound.net core framework可以自己处理这个问题?我还认为池可以提高性能如果using block中的对象实现IDispose接口,就不需要使用finally block。池的性能不仅取决于核心框架,还取决于开发人员的代码和配置。如果使用“使用”块,是否需要finally块?Thound.net core framework可以自己处理这个问题?我还认为池可以提高性能如果using block中的对象实现IDispose接口,就不需要使用finally block。池的性能不仅取决于核心框架,还取决于开发人员的代码和配置。