使用HttpWebRequest向服务器发送查询请求的时候提示连接被意外关闭

makel 2007-04-03 03:28:48
System.Net.WebException: 基础连接已经关闭: 连接被意外关闭。
在 System.Net.HttpWebRequest.GetResponse() 位置


我是根据数据库中的相关记录来向服务器发送查询请求的,然后将查询结果写回数据库,目前的问题是,如果数据库中的记录数比较少的话,这样查询是没有问题的,但是如果记录数多的话,比如上10万条,则会报上面的这种错误,提示连接被意外关闭,这是什么原因呢,有什么办法解决吗??
...全文
1658 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
makel 2007-04-03
  • 打赏
  • 举报
回复
放慢了请求速度后,还真的解决问题了。。。真是shit。。。。

谢谢各位的帮忙!
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
慢慢调试吧
makel 2007-04-03
  • 打赏
  • 举报
回复
我晕死,刚才直接用IE访问服务器,然后试着不停地按刷新,结果发现会出现服务器无法找到网页的错误,难道是我的程序运行得太快了??请求得太快导致服务器响应不过来??非得要我人为地降低程序运行速度。。。。
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
如果只有几十条记录的话,我这里运行得很正常

那你单步调试看看
makel 2007-04-03
  • 打赏
  • 举报
回复
是否并发,用了线程造成阻塞了..


应该不是,我没有用多线程,同一时刻只有一条记录的一个请求
makel 2007-04-03
  • 打赏
  • 举报
回复
而且我用的是GET方法,在出现错误的时刻,根据捕捉到的请求的Url地址在IE里是可以直接访问得到的。
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
是否并发,用了线程造成阻塞了..
makel 2007-04-03
  • 打赏
  • 举报
回复
不是的,我请求的都是同一个服务器,只是根据记录不同,查询的关键字不同而已
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
是否是有些网站不能连接.
你的操作是:"读取一条记录后向服务器提交一个查询请求,处理完毕后,再读下一条记录再提交一个查询请求".
这样执行到不能连接的就不动了.
makel 2007-04-03
  • 打赏
  • 举报
回复
超时?修改服务器timeout?
不会吧,我是读取一条记录后向服务器提交一个查询请求,处理完毕后,再读下一条记录再提交一个查询请求。。。每一次都是重新进行一次查询,这应该不会存在超时的问题吧???
GXY2005 2007-04-03
  • 打赏
  • 举报
回复
超时,修改服务器timeout!
makel 2007-04-03
  • 打赏
  • 举报
回复
谢谢,如果只有几十条记录的话,我这里运行得很正常,只是数据一多就不行了
不知道是不是因为请求太多了导致服务器响应不过来??
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
不过
我的数据库中只有30来个需要读取的网址
zhangliu_521 2007-04-03
  • 打赏
  • 举报
回复
public static string GetHttpSourceValue(string a_strUrl)
{

string strResult;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(new System.Uri(a_strUrl));
myReq.Method = "GET";
myReq.Accept = "*/*";
myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";

try
{
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();

string tmp = myReq.Headers.ToString();

Stream myStream = HttpWResp.GetResponseStream();

StreamReader sr = new StreamReader(myStream, Encoding.Default);
StringBuilder strBuilder = new StringBuilder();
while (-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine() + "\r\n");
}

strResult = strBuilder.ToString();
// StreamWriter sw = new StreamWriter("E:\\1.txt", false, Encoding.Default);
// sw.Write(strResult);


myStream.Close();
sr.Close();
// sw.Close();
}
catch (Exception exp)
{
strResult = "错误:" + exp.Message;
}


return strResult;




// StreamWriter sw = new StreamWriter(SaveFileName(), false, Encoding.Default);
// sw.Write(body);
// sw.Close();
}
}

我现在用的...

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧