0

不确定我的标题在技术上是否正确,但我有问题。

我在 IIS 8 上有一个 asp.net 4.5 站点,并使用 asp.net 来控制/限制文件下载。我没有让 IIS 为大型(10-20MB)静态文件(如 zip)提供服务器,而是使用 asp.net。

在大约 500 到 700 个用户开始下载之前,它运行良好。之后,asp.net 开始对域的所有请求进行排队,直到活动请求计数低于某种预定数量。

html 等静态内容不受影响。如果我启用多个工作进程,它会处理更多请求,但这会带来管理会话状态的问题。

如果我让 IIS 服务文件,则没有队列问题。有没有办法增加asp.net的队列长度?

4

1 回答 1

1

您可以修改请求队列限制和每个 CPU 允许的最大并发线程数

<system.web> 
  <applicationPool 
       maxConcurrentRequestsPerCPU="12" 
       maxConcurrentThreadsPerCPU="0" 
       requestQueueLimit="5000"/> 
</system.web>

http://blogs.msdn.com/b/rakkimk/archive/2009/07/08/iis7-improving-asp-net-performance-concurrent-requests-while-on-integrated-mode.aspx

但是,如果您的情况可能,我建议通过 CDN 提供更大的静态文件。默认限制是有原因的。如果您将配置的值提升到远高于默认值,您可能会开始遇到性能问题和运行时错误。

Amazon 的 S3 CDN(可能还有其他 CDN)提供了一系列选项来控制对 CDN 上文件的访问

使您能够利用 IAM 用户策略提供的细粒度访问控制,同时还通过使您能够进一步将请求限制为每个用户的预定义时间来减少您的风险。

http://aws.amazon.com/articles/5050/

于 2013-09-10T22:20:27.820 回答