2010-08-17 338 views
2

我們有許多web服務器(15),並且每個服務器都有一些URL(30)。 我已經寫了一個Windows桌面應用程序,出去並擊中每個服務器和每個組合。 (使用httpWebRequest.Proxy來做到這一點)。 它通常只適用於2臺服務器。所以總共有60個請求。C#HTTP請求最大連接數

的第一個問題是2連接數限制,所以我說這到窗體的Load: ServicePointManager.DefaultConnectionLimit = 500

這幫助,但後來我似乎遇到另一個限制。

當我們爲這些網站推出代碼後,他們可能需要一段時間才能做出迴應。 init進程需要30-40秒!不過這是另一回事。

但似乎有一個Windows XP的連接限制。如果我打開IE瀏覽器並嘗試訪問網站,而在運行我的應用程序來檢查網站時,IE瀏覽器需要很長時間纔會返回頁面。一旦應用程序開始收到請求並關閉它們,那麼IE也會收到回覆。

另外,我們正在調用的頁面會給我們返回調用其他WebService調用花費多長時間的時間。這些時間有時很慢,但有時速度很快。 我對每個HTTP請求都有一個定時器,一旦發出請求,就會啓動定時器。有時,頁面指定的響應時間與HTTP請求的計時器之間的差異非常大,例如40秒。

所以我認爲正在發生的是請求正在排隊,它的計時器正在運行,但尚未發送到頁面。

有誰知道我需要更改以增加Windows XP中的總連接限制嗎?我已閱讀關於註冊表更改或tcpip.sys編輯,但希望從明智和聰明的組在Stackoverflow的明確答案。

謝謝,我希望這是有道理的。

+0

只是爲了讓你知道。我曾嘗試更改tcpip.sys,但沒有奏效。我改爲100,仍然延遲 – Paul 2010-08-17 09:09:43

+0

您是否看到引用事件ID 4226的事件日誌錯誤消息?如果沒有,那麼你對tcpip.sys的修改就可以工作,但如果你是這樣的話,那麼你可能需要仔細檢查。請參閱http://serverfault.com/questions/51597/how-to-fix-tcp-ip-has-reached-the-security-limit-event-message進一步討論。 但是,從您的描述中,我想知道更大的問題不在服務器端。如果我已經正確地閱讀了您的描述,那麼您將爲每臺服務器發出30個併發請求服務器可以同時接受多個服務器嗎? – dgvid 2011-02-07 15:41:29

回答

1

你能嘗試addding這對您的app.config:

<configuration> 
    <system.net> 
    <connectionManagement> 
     <add address="*" maxconnection="65535" /> 
    </connectionManagement> 
    </system.net> 
</configuration>