我在自己的电脑中完成了项目后运行正常,但我把项目复制到其它的电脑中运行时出现故障
1 连接超时
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.我已检查了应该关闭的DataReader,Command,Connection都已即时关闭了2 连接数超过最大数
只有我自己在访问怎么会有这么多的连接数了3 我也将对应的iis中的
"应用程序保护"改为了"IIS底进程"应该用的方法都用了不知错在哪??
对了,我的cpu是CY4,而另一台有故障的cup是AMD的这个有关系吗???
1 连接超时
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.我已检查了应该关闭的DataReader,Command,Connection都已即时关闭了2 连接数超过最大数
只有我自己在访问怎么会有这么多的连接数了3 我也将对应的iis中的
"应用程序保护"改为了"IIS底进程"应该用的方法都用了不知错在哪??
对了,我的cpu是CY4,而另一台有故障的cup是AMD的这个有关系吗???
解决方案 »
- ?????ASP.NET做的程序在studio里正常运行,放到IIS下就出错了,求解中
- 我被这个问题搞得很蛋疼,大家过来看看该怎么改
- 求VS2005开发的"新闻发布系统",数据库sql server.........
- 在asp.net出错的js在html文件下可以正常运行,难道是asp.net的js的兼容比较差吗?
- 提个问题:大家在做asp.net应用程序时,一般采用什么身份验证方式?
- WebException: 远程服务器返回错误: (404) 未找到
- 如何获取自定义服务器控件中的一个值..
- 如何用IFRAME写一个框架有,top.aspx,left.aspx,right.aspx呢?
- 大家来讨论一下有关网页自动生成的问题。
- asp.net中调用js文件的问题
- 根据权限的不同树的节点不同,如何解决????
- 谁能帮我解答一下有关使用反射技术的疑问
我的代码通用访问数据层===========================using System;
using System.Data;
using System.Data.SqlClient;namespace cnhbn.common
{
/// <summary>
/// 负责对数据库的连接
/// </summary>
public class DB:IDisposable
{
private bool disposed = false;
private SqlConnection conn; public DB()
{
} /// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public SqlConnection connectionDatabase()
{
conn=new SqlConnection("server=.;database=cnhbn2006;uid=sa;Trusted_Connection=False;Connect Timeout=120;Pooling=True;Min Pool Size=1"); conn.Open();
return conn;
} //关闭数据库,释放数据库资源
public bool CloseDataBase()
{
Dispose();
return true;
} //除去对象资源.
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
} private void Dispose(bool disposing)
{
if(!this.disposed)
{
if(disposing)
{
}
//cmd.Dispose();
//sda.Dispose();
conn.Close();
}
this.disposed =true;
}
}
}
using System;
using System.Data;
using System.Data.SqlClient;
using cnhbn.common;
using cnhbn.city.entitys;namespace cnhbn.city.dac
{
/// <summary>
/// CityDAC 的摘要说明。
/// </summary>
public class CityDAC
{
private SqlConnection conn;
private bool disposed = false;
private DB db; public CityDAC()
{
db=new DB();
conn=db.connectionDatabase();
} /// <summary>
/// 增加城市
/// </summary>
/// <param name="city"></param>
/// <returns></returns>
public bool addCity(City city)
{
bool flag=false;
try
{
string sql="insert T_City(name,spell,provId) values(@name,@spell,@provId)";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0; cmd.Parameters.Add(new SqlParameter("@name",city.Name ));
cmd.Parameters.Add(new SqlParameter("@spell",city.Spell));
cmd.Parameters.Add(new SqlParameter("@provId",city.ProvId)); if(cmd.ExecuteNonQuery()>0)
flag=true;
cmd.Dispose();
conn.Dispose(); }
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine("增加城市失败!");
} Dispose();
return flag; }
/// <summary>
/// 获取所有城市
/// </summary>
/// <returns></returns>
public CityCollection listAllCity()
{
CityCollection list=new CityCollection();
try
{
string sql="select * from T_City order by name ";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0;
SqlDataReader sdr=cmd.ExecuteReader(); while(sdr.Read())
{
City city=new City();
city.Id=Convert.ToInt32(sdr["Id"]);
city.Name=Convert.ToString(sdr["Name"]);
city.Spell=Convert.ToString(sdr["Spell"]);
city.ProvId=Convert.ToInt32(sdr["ProvId"]); list.Add(city);
}
sdr.Close();
cmd.Dispose();
conn.Dispose();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
} Dispose();
return list; }
/// <summary>
/// 按省份取对应的城市
/// </summary>
/// <returns></returns>
public CityCollection listCityByProvId(int provId)
{
CityCollection list=new CityCollection();
try
{
string sql="select * from T_City where provId=@provId";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0;
cmd.Parameters.Add(new SqlParameter("@provId",SqlDbType.Int,4));
cmd.Parameters["@provId"].Value=provId;
SqlDataReader sdr=cmd.ExecuteReader(); while(sdr.Read())
{
City city=new City();
city.Id=Convert.ToInt32(sdr["Id"]);
city.Name=Convert.ToString(sdr["Name"]);
city.Spell=Convert.ToString(sdr["Spell"]);
city.ProvId=Convert.ToInt32(sdr["ProvId"]); list.Add(city);
}
sdr.Close();
cmd.Dispose();
conn.Dispose();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
} Dispose();
return list;
} /// <summary>
/// 按城市名称查找城市
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public City getCityByName(string name)
{
City city=new City();
try
{
string sql="select * from T_City where name like '%"+@name+"%' order by name";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0; cmd.Parameters.Add("@name",SqlDbType.VarChar,20);
cmd.Parameters["@name"].Value=name;
SqlDataReader sdr=cmd.ExecuteReader(); while(sdr.Read())
{
city.Id=Convert.ToInt32(sdr["Id"]);
city.Name=Convert.ToString(sdr["Name"]);
city.Spell=Convert.ToString(sdr["Spell"]);
city.ProvId=Convert.ToInt32(sdr["ProvId"]);
}
sdr.Close();
cmd.Dispose();
conn.Dispose();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
} Dispose();
return city;
}
/// <summary>
/// 查找此城市是否已存在
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public bool isExistCity(string name)
{
bool flag=false;
try
{
string sql="select count(*) from T_City where name=@name";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0; cmd.Parameters.Add("@name",SqlDbType.VarChar,20);
cmd.Parameters["@name"].Value=name;
int count=Convert.ToInt32(cmd.ExecuteScalar()); if(count>0)
flag=true;
cmd.Dispose(); }
catch(Exception e)
{
Console.WriteLine(e.Message);
}
return flag; }
/// <summary>
/// 按Id取城市信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public City getCityInfoById(int id)
{
string sql="select * from T_City where id=@id";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0;
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value=id;
SqlDataReader sdr=cmd.ExecuteReader();
City city=new City();
while(sdr.Read()){
city.Id=Convert.ToInt32(sdr["id"]);
city.Name=Convert.ToString(sdr["name"]);
city.Spell=Convert.ToString(sdr["spell"]);
city.ProvId=Convert.ToInt32(sdr["provId"]);
}
sdr.Close();
cmd.Dispose();
conn.Dispose(); Dispose();
return city;
} /// <summary>
/// 更新城市
/// </summary>
/// <param name="city"></param>
public bool updateCityInfo(City city)
{
bool flag=false;
try
{
string sql="update T_City set name=@name,spell=@spell where id=@id";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0;
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value=city.Id; cmd.Parameters.Add("@name",SqlDbType.VarChar,20);
cmd.Parameters["@name"].Value=city.Name; cmd.Parameters.Add("@spell",SqlDbType.VarChar,20);
cmd.Parameters["@spell"].Value=city.Spell;
if(cmd.ExecuteNonQuery()>0)
flag=true;
cmd.Dispose();
conn.Dispose(); }
catch(Exception e)
{
Console.WriteLine(e.Message);
} Dispose();
return flag;
}
/// <summary>
/// 删除城市
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public bool removeCity(int id)
{
bool flag=false;
try
{
string sql="delete from T_City where id=@id";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandTimeout=0; cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Int,4));
cmd.Parameters["@id"].Value=id; if(cmd.ExecuteNonQuery()>0)
flag=true;
cmd.Dispose();
conn.Dispose();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
} Dispose();
return flag; } //除去对象资源.
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
} private void Dispose(bool disposing)
{
if(!this.disposed)
{
if(disposing)
{
}
db.CloseDataBase();
}
this.disposed =true;
}}
}高手看看错在哪???
conn.Dispose();
进行垃圾释放了所以在
private void Dispose(bool disposing)
{
if(!this.disposed)
{
if(disposing)
{
}
//cmd.Dispose();
//sda.Dispose();
conn.Close();
}
this.disposed =true;
}
方法中conn.Close();一直没有执行;
也就是数据库连接没有关闭;
不知道我的说法是否正确