基于.net中突破每客戶端兩個(gè)http連接限制的詳細(xì)介紹
更新時(shí)間:2013年05月20日 10:29:11 作者:
本篇文章是對(duì).net中突破每客戶端兩個(gè)http連接限制進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在Http協(xié)議中,規(guī)定了同個(gè)Http請(qǐng)求的并發(fā)連接數(shù)最大為2. 這個(gè)數(shù)值,可謂是太小了。
而目前的瀏覽器,已基本不再遵循這個(gè)限制,但是Dot Net平臺(tái)上的 System.Net 還是默認(rèn)遵循了這個(gè)標(biāo)準(zhǔn)的。
從而造成了,在使用HttpWebRequset 或者 WebClient 利用多線程的方式,訪問某個(gè)網(wǎng)站時(shí),經(jīng)常出現(xiàn) 連接被異常關(guān)閉的錯(cuò)誤,大大降低了效率。
這個(gè)限制的值,是可以自己設(shè)置或配置的。
System.Net.ServicePointManager.DefaultConnectionLimit 就是設(shè)置的地方。 可以根據(jù)實(shí)際情況,來設(shè)置這個(gè)值的大小,不過,建議不要超過1024,推薦為512,已經(jīng)足夠了。
當(dāng)然,也可以直接在程序的 app.config中配置這個(gè)值。
此值設(shè)置后,只對(duì)以后發(fā)起的HTTP請(qǐng)求有效。
兩個(gè)辦法:
1。限制針對(duì)應(yīng)用程序域,為每個(gè)線程使用不同的應(yīng)用程序域:
AppDomain appDomain = AppDomain.CreateDomain("");
appDomain.ExecuteAssembly(@"TestClient.exe");
AppDomain.Unload(appDomain);
2。在app.config配置文件中添加:
<system.net>
<connectionManagement>
<add address="*" maxconnection="100"/>
</connectionManagement>
</system.net>
而目前的瀏覽器,已基本不再遵循這個(gè)限制,但是Dot Net平臺(tái)上的 System.Net 還是默認(rèn)遵循了這個(gè)標(biāo)準(zhǔn)的。
從而造成了,在使用HttpWebRequset 或者 WebClient 利用多線程的方式,訪問某個(gè)網(wǎng)站時(shí),經(jīng)常出現(xiàn) 連接被異常關(guān)閉的錯(cuò)誤,大大降低了效率。
這個(gè)限制的值,是可以自己設(shè)置或配置的。
System.Net.ServicePointManager.DefaultConnectionLimit 就是設(shè)置的地方。 可以根據(jù)實(shí)際情況,來設(shè)置這個(gè)值的大小,不過,建議不要超過1024,推薦為512,已經(jīng)足夠了。
當(dāng)然,也可以直接在程序的 app.config中配置這個(gè)值。
此值設(shè)置后,只對(duì)以后發(fā)起的HTTP請(qǐng)求有效。
兩個(gè)辦法:
1。限制針對(duì)應(yīng)用程序域,為每個(gè)線程使用不同的應(yīng)用程序域:
復(fù)制代碼 代碼如下:
AppDomain appDomain = AppDomain.CreateDomain("");
appDomain.ExecuteAssembly(@"TestClient.exe");
AppDomain.Unload(appDomain);
2。在app.config配置文件中添加:
復(fù)制代碼 代碼如下:
<system.net>
<connectionManagement>
<add address="*" maxconnection="100"/>
</connectionManagement>
</system.net>
相關(guān)文章
C#實(shí)現(xiàn)Excel動(dòng)態(tài)生成PivotTable
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)Excel動(dòng)態(tài)生成PivotTable的相關(guān)方法,感興趣的小伙伴們可以參考一下2016-04-04
C#實(shí)現(xiàn)六大設(shè)計(jì)原則之迪米特法則
這篇文章介紹了C#實(shí)現(xiàn)六大設(shè)計(jì)原則之迪米特法則的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
基于WPF實(shí)現(xiàn)一個(gè)簡單的音頻播放動(dòng)畫控件
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)一個(gè)簡單的音頻播放動(dòng)畫控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-07-07
詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對(duì)象
這篇文章主要介紹了詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對(duì)象,“反射”其實(shí)就是利用程序集的元數(shù)據(jù)信息,感興趣的小伙伴們可以參考一下。2017-03-03

