这篇文章主要写解决一个网上答案不能解决自己问题的时候,解决问题的整个流程, 如果大家觉得这个没价值,还请管理员帮忙撤销发首页 先谢谢各位了。 一年前帮学校做了一个就业信息管理系统, 当时图热闹,觉得虽然说学校人不是很多,但是看惯了大家对GridVie
这篇文章主要写解决一个网上答案不能解决自己问题的时候,解决问题的整个流程,
如果大家觉得这个没价值,还请管理员帮忙撤销发首页
先谢谢各位了。
一年前帮学校做了一个就业信息管理系统,
当时图热闹,觉得虽然说学校人不是很多,但是看惯了大家对GridView的性能的漫骂,
抱着练手的想法,自己用repeater 代替了GridView 来做数据显示
之后系统采用三层架构设计。。。。
之后做好了在自己本机上怎么测都没毛病,觉得差不多了
就向学校申请服务器架设,
结果没用几天,出毛病了, 老是提示
“超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。 ”
ok,google 了下,这个一般是因为DbConnection 开启了之后忘记关闭的(参见)
自己本身写了个DbHelper,改起来应该很快,
结果一看,雷到了,,原来我在DbHelper里面已经关闭了啊
///
/// 执行查询语句,返回DataSet
///
/// 查询语句
/// DataSet
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
connection.Close();
}
return ds;
}
}
百思不得其解,最后没办法,临时想了个方案,关闭“连接池”
在web.config 中写入
connectionString="Data Source=.sqlexpress;Initial Catalog=YTJY;User ID=xxx;Password=xxx;pooling=false"
懂行的一看就知道是笨办法。。。
用了一段时间,貌似不报那个错了,所以就没注意了
可是,
今年6月,这个错误又华丽的出现了。
原来跑就业那台服务器因为项目需要,又装了个Oracle
额,抱歉,我一直说服务器,实际上是台pc机,联想的,配置忘记了,就记得是512 的内存后来换成1G的了,07年买的菠萝机
内存直接常年1G 占满
最后没办法,学校传说去采购了9k 的服务器(真的服务器了)
虽然马上就华丽的本科毕业(还几天就答辩。。。)
但是如果程序放新的服务器上还是不得行,校方直接毕业设计挂我我不是惨死。
没办法,琢磨着解决问题吧。
研究错误提示
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
反复读这句话,连接池我已经取消了啊,相当于每次读数据都是从数据库里申请链接,没有连接池的概念了哈
终于,发现一个很抑郁的事情