HTTP错误503.2 - 服务不可用。正在超出serverRuntime @ appConcurrentRequestLimit设置

时间:2012-03-19 17:23:34

标签: iis iis-7 sitecore

我在IIS 7上设置了一个Intranet SiteCore网站,该网站随机抛出以下错误消息

    HTTP Error 503.2 - Service Unavailable
    The serverRuntime@appConcurrentRequestLimit setting is being exceeded.

要解决此问题,我进行了以下更改

  • 将应用程序池myrjetAppPool的队列长度从1000增加到65535。
  • 修改Machine.Config以将ProcessModel元素的requestQueueLimit属性增加到100000
  • 通过运行

    将appConcurrentRequestLimit增加到10000
    C:\Windows\System32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
    

但我仍然遇到同样的错误。任何帮助都非常有用。

2 个答案:

答案 0 :(得分:6)

您可以查看所有线程的去向。我们曾经出现过媒体库资产的线程悬空并阻塞队列的情况。

在IIS管理器中,从树中选择服务器节点,然后选择“工作进程”功能图标,然后右键单击感兴趣的应用程序池并选择“查看当前请求”。你可能会发现有些事情陷入困境。我有时会在这个屏幕上连续几十次点击F5以查看请求的速率(当然,性能监视器更适合查看指标,但它不会告诉您正在处理的URL)。

答案 1 :(得分:4)

将链接网址中的引用调查为“MaxConcurrentReqeustsPerCPU”,您可能需要通过创建新的注册表项来设置,具体取决于您的操作系统和框架。

http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

已经注释 - 使用性能计数器检查实际的并发请求数,以确定您要达到的限制,即可能是5000或12(每个cpu)的限制。

编辑:我意识到这可能看起来像是在谈论完全不同的设置,但我相信这里有重叠。