System.Net.HttpWebRequest的Bug? 下载几万个网页後不能下载了

lexchou 2007-07-13 08:38:06
用这个东西多线程下载网页, 大概下载了几万个之后,就出问题了.
出问题就是每次读取完一个网页时弹出WebException,"The underlying connection was closed: An unexpected error occurred on a send."
或者异常IOException(Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。.)

这些个异常多出几次之后, 再次创建的HttpWebRequest就下不动了,我的问题就是在这里, 怎么下不了了呢.... .... #-_-

注意, 是下载几万个网页後才出现的. 我在网上搜索国外的还没看到类似的情况, 该Dispose的东西都Dispose了, 该Close该Abort的东西都做了处理了.
...全文
297 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lexchou 2007-07-14
  • 打赏
  • 举报
回复
原因知道了. 是连接超时 #-_-
greenery 2007-07-13
  • 打赏
  • 举报
回复
用过WebRequest,没有遇到。
有情顶一下。
lexchou 2007-07-13
  • 打赏
  • 举报
回复
我在相关地方都try...catch了的,如果没成功那.net至少应该放个异常通知我吧? 可我在Close, Dispose相关的地方都没收到过异常

线程我是直接用的.net的异步IO, 没有我自己开线程.
kingthy 2007-07-13
  • 打赏
  • 举报
回复
The underlying connection was closed: An unexpected error occurred on a send.

这里说明了错误是在你这方(发送时出错)并且刚好在几W个后出错还是多线程!!怀疑是线程处理有问题,也就是你Close和Dispose可能没成功把你机器的连接池给用光了.检查一下代码吧..
riluo 2007-07-13
  • 打赏
  • 举报
回复
hehe
lexchou 2007-07-13
  • 打赏
  • 举报
回复
我第一个回帖说过了的. 对同一个站点连接数目不多. 而且其他工具能访问. 那就不是对方断开连接了吧
csShooter 2007-07-13
  • 打赏
  • 举报
回复
你当人家的服务器是你实验设备!


自已提供一个测试服务器算了!
vainnetwork 2007-07-13
  • 打赏
  • 举报
回复
把你的连接当非法用户处理了,你连接太频繁了.
GXY2005 2007-07-13
  • 打赏
  • 举报
回复
据我估计不是你的问题,而是对方的问题,对方强制断开了你的连接!
GXY2005 2007-07-13
  • 打赏
  • 举报
回复
下载了几万个?
黑奴啊,非法用工,也得给人家休息吧,估计是罢工了!
lexchou 2007-07-13
  • 打赏
  • 举报
回复
不太可能是被服务器封IP了. 因为用IE或者其他工具连的上. 而且对同一个站点连接数目并不多, 不可能被封IP
curd0468 2007-07-13
  • 打赏
  • 举报
回复
下载了几万个,真有你的
ezhuyin 2007-07-13
  • 打赏
  • 举报
回复
另外开一个线程,在这个线程run你的WebRequest,如果出错,就raise event,然后主线程处理,把这个线程关闭以后重开。因为没有具体例子,只能凭想象力试试看。
lexchou 2007-07-13
  • 打赏
  • 举报
回复
顶!

110,535

社区成员

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

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

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