2013-04-13 21 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