2013-04-13 19 views
0

介绍HttpWebRequests放缓,或超时

我做的是抓取文件/网站的代理IP /端口的应用程序。该实现纯粹是异步的,以使其以我想要的速度流动。该应用程序的全部目的是找到“活着”的代理。

要检查一个代理是否还活着,我正在为一个特定的网站制作一个HttpWebRequest,如果成功,它还活着,如果不是那么死了。

的问题

一个例子:

首先运行:

  1. 爬行与30K代理的文本文件。
  2. 与每个代理进行HttpWebRequest检查它是否“活着”。
  3. 查找30个活着的代理。

第二轮:

  1. 爬与30K代理同一个文本文件。
  2. 与每个代理进行HttpWebRequest检查它是否“活着”。
  3. 找到0个代理,它们还活着。

如果我等待大约10分钟,那么第二次运行将产生大约30个活跃的代理。否则它会暂时超时,并将其标记为死亡。

正如你可能已经想通了,我的问题是为什么第二次运行不会产生相同或接近第一次运行的结果。

我已经改变了以下内容:

ServicePointManager.DefaultConnectionLimit = int.MaxValue,并ServicePointManager.MaxServicePoints = int.MaxValue

这是我的网络的一个基本的限制,或者是别的东西玩吗?

+0

如果您使用3rd/4th/5th/...请求,结果如何?这个问题是否解决了手/端口异常? – Gusdor

回答

0

您是否确定要关闭第一个Web请求?

+0

所有的web请求都是使用dispose模式完成的。 - 在这种情况下,也是第一次运行和第二次运行,是指打开控制台应用程序,关闭它,然后再次打开它。 – ebb

+0

直到行为重置多久?你可能会遇到套接字超时的问题。如果您的请求中设置了“保持活动”标志? – Gusdor

+0

我还没有能够测量确切的时间,但约10分钟 - 它再次运作。 – ebb