查询 ASP.NET 时,服务的请求将通过 Internet Information Services (IIS) 和 ASP.NET 工作进程之间的管道来传递,并且在该管道内排队。(ASP.NET 在自己的进程中运行 - 这一点不同于传统的 ASP,传统的 ASP 与 IIS 服务在同一个进程中运行。)默认情况下,此队列最多可以包含 5,000 个请求。如果请求超过 5,000 个,则用户将收到“503 - 服务不可用”错误,并被拒绝服务。
尽管默认值对于相对数目较少的 Communicator Web Access(2007 R2 发行版)用户来说足够了,但随着用户数接近 4,500,就很容易超过请求队列的限制。由于这个原因,您可能需要将请求队列的限制增加到 15,000。如果将请求队列的限制设置为 15,000,就能够提供足以处理所有客户端请求的大队列了。此外,如果服务器在 Windows Server 2008 上运行,则您需要配置 appConcurrentRequestLimit 设置以支持 5,000 以上的连接。
修改 ASP.NET 请求队列的限制
-
单击“开始”,然后单击“运行”****。
-
在“运行”对话框中,键入 notepad %systemroot%Microsoft.NetFramework64v2.0.50727CONFIGmachine.config,然后单击“确定”。
-
找到如下所示的 processModel 元素:
<processModel autoConfig="true" />
-
将 processModel 元素替换为以下值:
<processModel enable="true" requestQueueLimit="15000" />
-
保存并关闭 Machine.config 文件。
-
对于 Windows Server 2008,在“运行”****对话框中,键入 appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:<#of users * 1.5>。