现在要开发一个文件下载页面。页面是ASP.NET MVC4的页面。
20个线程并发下载本机IIS的文件测试。但是每次只能有10个线程并发读取。其余所有线程会阻塞在获取返回文件流的语句:WebResponse response = request.GetResponse()上。
只有当一个线程下载完成,另一个线程才能开始下载。
是IIS的问题吧?如何解决IIS并发传输限制?
Win7 64bit IIS 7.5
猜测1:IIS 对同一IP的访问,只支持10个线程。
经过测试。发现是IIS版本或者IIS配置的限制,今天在公司的服务器上测试,就能跑到100多个线程并行下载。
上面可能不对。
设置:ServicePointManager.DefaultConnectionLimit = 1000;
则能同时很多线程下载。
Win7 64bit IIS 7.5 应该没有并发限制。
@Henry_Wang: 你看看堵塞的时候的系统资源占用情况,是不是10个线程就把IO跑慢了所以阻塞了?
@飞来飞去: 不会的。我下载是进行了限速,速度非常低。而且文件放到内存的byte[]里了。没IO限制。