.net中突破每客户端两个http连接的限制

本文介绍了解决.NET平台上的HTTP请求并发限制问题的方法。通过调整System.Net.ServicePointManager.DefaultConnectionLimit属性或在app.config中配置connectionManagement,可以提高HTTP请求的并发数,避免因连接异常关闭导致的效率降低。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Http协议中,规定了同个Http请求的并发连接数最大为2. 这个数值,可谓是太小了。

而目前的浏览器,已基本不再遵循这个限制,但是Dot Net平台上的 System.Net 还是默认遵循了这个标准的。

从而造成了,在使用HttpWebRequset 或者 WebClient 利用多线程的方式,访问某个网站时,经常出现 连接被异常关闭的错误,大大降低了效率。

这个限制的值,是可以自己设置或配置的。

System.Net.ServicePointManager.DefaultConnectionLimit 就是设置的地方。 可以根据实际情况,来设置这个值的大小,不过,建议不要超过1024,推荐为512,已经足够了。

当然,也可以直接在程序的 app.config中配置这个值。

此值设置后,只对以后发起的HTTP请求有效。


两个办法:

1。限制针对应用程序域,为每个线程使用不同的应用程序域:

AppDomain appDomain = AppDomain.CreateDomain("");
appDomain.ExecuteAssembly(@"TestClient.exe");
AppDomain.Unload(appDomain);

2。在app.config配置文件中添加:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值