2010-12-21 52 views
1

我創建了被連接到某個社交網絡服務器發送到狀態更新等數據的服務器產品已經通過誰在使用這個解決方案的用戶身份驗證,以必要的社交網絡服務器的服務器。HttpWebRequest的連接限制和RESTful服務器

其實,我在這個時候沒有問題,但我想我會的。

我的服務器將開放通過HTTP使用C#HttpWebRequest的實例的數千neccessary服務器的併發請求。我已經知道可以用下面的propery來改變併發請求限制。

ServicePointManager.DefaultConnectionLimit

AFAIK,這個限制是最大100 EVET設置超過100

所以,我將要面臨的瓶頸問題的HttpWebRequest甚至改變的DefaultConnectionLimit財產ServicePointManager。

我想知道你們你在想什麼。 你有什麼建議嗎?

+0

你真的絕對需要同時連接所有這些連接嗎?即使你這樣做,你是否能夠同時充分處理這些迴應? – 2010-12-21 11:32:52

+0

你如何使用連接?同步/異步 – RubbleFord 2011-01-04 06:37:56

+0

@RubbleFord我正在使用異步 – fyasar 2011-01-04 11:34:32

回答

2

忽略這一點是否是一個好主意,你有沒有嘗試過使用獨特的ConnectionGroupName爲每個請求,例如Guid.NewGuid()。toString()方法?連接限制是每個連接組,所以這可能會有所幫助,除非有一些全侷限制。您應該禁用KeepAlive,除非您將爲後續請求重用組名。看到我的回答HttpWebRequest How to handle (premature) closure of underlying TCP connection?

+0

聽起來不錯,你有沒有應用過壓力測試你的想法? – fyasar 2010-12-22 11:50:48

+0

我沒有嘗試過大量的連接,但它確實覆蓋了小規模的連接限制。這是在MSDN中提到的,我也嘗試過它。 MSDN:「每個連接組都會爲服務器創建其他連接,這可能會導致超過該服務器的ServicePoint.ConnectionLimit屬性設置的連接數。」 – 2010-12-22 14:00:21

+0

這也是System.Net.HttpClient使用的策略。只爲像我這樣的人,現在就來這個線索。 – georgiosd 2012-05-02 11:52:06