![由于超出队列限制,ASP.NET 拒绝了此请求](https://linux22.com/image/646116/%E7%94%B1%E4%BA%8E%E8%B6%85%E5%87%BA%E9%98%9F%E5%88%97%E9%99%90%E5%88%B6%EF%BC%8CASP.NET%20%E6%8B%92%E7%BB%9D%E4%BA%86%E6%AD%A4%E8%AF%B7%E6%B1%82.png)
当我从 IIS 运行我的网站时出现此错误。
ASP.NET rejected this request because the queue limit was exceeded.
我的用户收到错误消息:
This service is unavailable
回收application pool
解决了一些问题,但问题在几个小时内再次出现。我使用这个公式超过了queue lenght
lapplication poo
available memory * processor * 10 / total number of application pool.
我得到的结果是 40,000。所以我将queue length
应用程序池设置为 40,000。但这并没有解决我的问题。我更新了Ping maximum response time, shut down time limit and stratup time limit
并将所有设置为 200。问题没有再次出现,但我不确定它是否解决了我的问题或减少了我网站的负载。我的网站现在开始正常运行。
有人能了解有关此错误的更多信息吗?或者有人能建议我如何诊断问题吗?我希望这个错误将在下周五再次出现,所以我希望做好充分的准备来找到问题所在。
答案1
不要试图通过延长队列来解决这个问题 - 从解决问题开始。更长的队列只能处理突发情况......
问题是您的服务器跟不上,这就是队列被填满的原因。您收到很多请求,但无法处理它们。正如我所说 - 在突发情况下,较长的队列会有所帮助,但最终您必须跟上。
开始分析您的代码并使其更高效,或者查看瓶颈在哪里(CPU,内存,磁盘)并在那里添加 - 可能添加更多服务器。