小弟现在做了一个网站 但是没得设置最大最小连接数 我找朋友测试了下 8个人访问就可能会出现超时 就会报错 然后我在连接字符串里面加了最大连接数为1000目前不会出现这中问题 但是有些时候我去看的时候 在线的人数就3-5个人 我在数据库输入sp_who里面就是500-600条数据 当前活动连接就是几百个活动连接 我仔细检查了N遍了 我所有的连接都是close了的 如果这样的话我的项目正式上线的话每天在线的人数在500-1000左右 那不是几下就超时了 求求大侠们给点看发 到底是怎么回事啊 这个问题吧我折腾了好几天了!
SQLSERVER 也是要用企业版. 其它版本也都有连接数限制.
所以我现在一般写using(Sqlconnection conn)这种类型。
你把所有连接数据库的地方现在都加上try catch 就行,在catch里面关掉。
/// 提交sql语句执行(增删改)
/// </summary>
/// <param name="sql">需要提交的sql语句</param>
/// <param name="spms">sql语句中可能包含的参数数组</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(string sql,SqlParameter[] spms)
{
SqlCommand cmd = PrepareCommand(sql,spms);
int rowsAffected = 0;
try
{
cmd.Connection.Open();
rowsAffected = cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw ex;
}
finally
{
if (cmd.Connection.State != ConnectionState.Closed)
cmd.Connection.Close();
}
return rowsAffected;
} /// <summary>
/// 提交sql语句执行读取
/// </summary>
/// <param name="sql">需要提交的sql语句</param>
/// <param name="spms">sql语句中可能包含的参数数组</param>
/// <returns>读取器DataReader</returns>
public static SqlDataReader ExecuteReader(string sql, SqlParameter[] spms)
{
SqlCommand cmd = PrepareCommand(sql, spms);
SqlDataReader reader = null;
try
{
cmd.Connection.Open();
//如果reader关闭,则所使用的连接自动关闭
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException ex)
{
throw ex;
}
return reader;
}
try
{
---------->链接内容
}
catch (Exception e)
{
throw e;
}
finally {
------>资源释放
}
620 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
621 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
622 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
623 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
624 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
625 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
626 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
627 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
628 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
629 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
630 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
631 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
632 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
633 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
634 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
645 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
646 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
647 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
648 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
649 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
650 0 sleeping admin DNION-51DEA6B64 0 XC2010 AWAITING COMMAND
725 0 runnable admin JJD 0 XC2010 SELECT
727 0 sleeping admin JJD 0 master AWAITING COMMAND这个是我通过sp_who查看到的内容 只是下面几十条数据
Datareader也要关闭- -