为什么HttpWebRequest多线程并发访问总是会被阻塞

newlive001 2010-01-18 06:40:49
一直以来好好的,可是今天 突然不行了,好像 杀毒软件NOD32自动更新后出现的症状,百思不得其解,现在将NOD32清除干净了还是无法还原,
有一个抓取程序 使用HttpWebRequest多线程抓取网页, 全部HttpWebRequest被阻塞直到访问超进,服务器的带宽很好的,而且被访问的网站是超快的,如果改成单线程症状消失,如果改成哪怕2个线程也会被阻塞到超时,也就是说我的程序如果用HttpWebRequest开多个线程下载网页将莫名奇妙被访问超时. 一直以来都是好好的

有没有遇到同样问题的朋友
核心 代码 一直被阻塞的代码

public virtual string GetHtmlCode(string url)
{
try
{

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; Alexa Toolbar; .NET CLR 2.0.50727)";
req.Timeout = 100 * 1000;
HttpWebResponse webResponse = (HttpWebResponse)req.GetResponse();

Stream stream = webResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, this.HtmlEncoding);
result = streamReader.ReadToEnd();
streamReader.Close();
webResponse.Close();
}
catch (Exception exp)
{

Log.AddSystemException(exp);

}
}

...全文
856 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
3x3只眼 2010-11-08
  • 打赏
  • 举报
回复
webResponse.Abort();
req.Close();

没有及时地释放连接。
newlive001 2010-01-19
  • 打赏
  • 举报
回复
有没有人会啊
mngzilin 2010-01-18
  • 打赏
  • 举报
回复
从这里看不出问题。

110,561

社区成员

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

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

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