客户端 通过webservice 操作数据库
查询数据库连接时,当客户端每次调用webservice, 多会新建一个数据库连接。最多的时候数据库连接达 50多个。
客户端运行一段时间后。导致服务器很卡,W3WP.EXE进程 占用CPU 90%+, 客户端调用刚开始调用多成功,后调用有时会
失败。连接超时/远程连接主动拒绝访问/outofmemoryexception/ 等等 请大家帮忙看下代码,应该做何修改 ,3Q
代码:
//客户端代码,每次操作 New 一个webService实例
localhost.Service server = new localhost.Service();
server.Selectdata("select id,username,logintime,other,other1 from Test",ref sErr);
//webService代码
[WebMethod]
public DataSet Selectdata(string selectCommandText, ref string sErr)
{
DataSet Set = new DataSet();
if (!SelectDs(selectCommandText, Set, ref sErr)) return null;
return null;
}
public Boolean SelectDs(string selectCommandText, DataSet dbSet, ref string sErr)
{
sErr = "";
try
{
//每次操作数据库多New 一个数据库连接 --ConnectionString 设置连接应用池 最大连接数: Max Pool Size=75
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlCommand com = new SqlCommand(selectCommandText, conn);
SqlDataAdapter dat = new SqlDataAdapter(com);
dbSet.Clear();
conn.Open();
dat.Fill(dbSet);
}
}
catch (SqlException sqlex)
{
sErr = sqlex.ToString();
return false;
}
return true;
}
查询数据库连接时,当客户端每次调用webservice, 多会新建一个数据库连接。最多的时候数据库连接达 50多个。
客户端运行一段时间后。导致服务器很卡,W3WP.EXE进程 占用CPU 90%+, 客户端调用刚开始调用多成功,后调用有时会
失败。连接超时/远程连接主动拒绝访问/outofmemoryexception/ 等等 请大家帮忙看下代码,应该做何修改 ,3Q
代码:
//客户端代码,每次操作 New 一个webService实例
localhost.Service server = new localhost.Service();
server.Selectdata("select id,username,logintime,other,other1 from Test",ref sErr);
//webService代码
[WebMethod]
public DataSet Selectdata(string selectCommandText, ref string sErr)
{
DataSet Set = new DataSet();
if (!SelectDs(selectCommandText, Set, ref sErr)) return null;
return null;
}
public Boolean SelectDs(string selectCommandText, DataSet dbSet, ref string sErr)
{
sErr = "";
try
{
//每次操作数据库多New 一个数据库连接 --ConnectionString 设置连接应用池 最大连接数: Max Pool Size=75
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlCommand com = new SqlCommand(selectCommandText, conn);
SqlDataAdapter dat = new SqlDataAdapter(com);
dbSet.Clear();
conn.Open();
dat.Fill(dbSet);
}
}
catch (SqlException sqlex)
{
sErr = sqlex.ToString();
return false;
}
return true;
}
解决方案 »
- 自己做了复读机软件,高手指点下
- 玩不来csc
- 请问winform的自动更新怎么替换更新程序自身的dll?
- 自定义值类型的赋值问题
- 请教SerialPort问题 为什么逐行调试时可以取到数据,却在自动编译时没有取到数据哪?
- ■■■有高手吗,我这问题问了四回了,还没答案
- 子窗体怎么调用父窗体的方法???
- 请问如何编写DATALIST中的ImageButton的事件。当点击它,指向它所指向的网址。
- 初学c#网络编程,多个客户端连接一个服务端的问题
- 调用接口报错:尝试读取或写入受保护的内存,这通常指示其他内存已损坏
- 请问编写一个webserver有没有什么调试方法或者工具?
- C# 读取TXT文件,返回值为0
数据库挂了吧?
如果使用的是WCF的话,可以设置其服务实例与并发访问的模式来控制客户端与服务的交互.
现在还未用WCF
我想应该是webservice代码的问题。。
这里webservice作为数据库访问的控制层,应该不管客户端怎么写的,数据库连接数应该只受webservice逻辑控制(所有数据库连接的开闭由webservice控制)。 求webservice应该怎么控制与配置??还有数据库连接多起来的时,IIS有时访问错误,W3WP.EXE进程CPU占大于90%+,只和数据库连接过多引起吗,还要注意什么?