IIS的MaxConnection處理

.net 的 HttpWebRequest 或者 WebClient 在多線程情況下存在併發連接限制,這個限制在桌面操作系統如 windows xp , windows  7 下默認是2,在服務器操作系統上默認爲10. 如果不修改這個併發連接限制,那麼客戶端同時可以建立的 http 連接數就只有2個或10個。對於一些諸如瀏覽器或網絡蜘蛛的應用,2個或10個併發數量實在太少,大大影響應用的性能。之所以有這個併發連接限制,是因爲 http 1.0 和 http 1.1 標準規定併發連接數最大爲2. 不過目前主流的瀏覽器都已經不遵循這個規則了,但 .net framework 依然默認遵循這個規則。

很多文章說用異步方式訪問 HttpWebRequest 可以提高併發性能,但我測試下來,如果不修改這個默認併發連接數,同步或異步方式訪問性能都很不好。

調整這個默認併發連接限制的方法很簡單

只要在程序中設置:

System.Net.ServicePointManager.DefaultConnectionLimit = 512;

這個值最好不要超過1024。

我們也可以在app.config 中對最大併發連接數進行設置,方法如下:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章