什么可能会导致“服务不可用503”错误?

我们有一个部署到服务器的asp.net MVC应用程序,但是当对服务器的请求过多时,客户端只会得到“503服务不可用”的错误。
但是,如果我将应用程序部署到另一台服务器(较低的硬件configuration),一切正常,甚至更多的要求它可以处理好。
我的问题是什么可能的configuration可以导致以前的服务器只是抛出一个503错误? (这意味着请求没有达到我们的申请)。

您的网页由应用程序池提供。 如果您禁用/停止应用程序池,并且任何人尝试浏览该应用程序,您将得到服务不可用。 这可能是由于多种原因而发生的

  1. 您的应用程序可能已经崩溃了[检查事件查看器,看看您是否可以在应用程序/系统日志中find事件日志]

  2. 您的应用程序可能会非常频繁地崩溃。 如果应用程序池在5分钟内崩溃了5次[请检查您的应用程序池设置以确保快速失败],则应用程序池将被IIS禁用,您将最终收到此消息。

无论哪种情况,问题都是您的工作进程失败,您应该从崩溃的angular度对其进行故障排除。

什么是崩溃(技术上)…在ASP.NET中,如果发生了怎么办?

如果服务器没有足够的内存也会导致这个问题。 这是我与Godaddy VPS的亲身经历。

主要是这意味着有太多的并发请求,并进一步超过了默认的1000个排队请求。 这是有1000个或更多的排队请求到您的网站。

如果存在长时间运行的任务,并且因此备份请求队列,则可能发生这种情况(假定应用程序中没有错误)。

根据应用程序池的设置方式,您可能会看到这种情况。 通常,应用程序池的过程模型有一个名为“最大工作进程”的项目。 默认情况下,这是1.如果将其设置为大于1(通常最大为硬件上的核心数量的最大值),则可能不会看到发生这种情况。

只要注意,除非网站非常繁忙,否则你不应该看到这个。 如果你这样做,这真的是指向长期运行的任务

我们最近遇到了这个错误,根本原因竟然是IIS服务器上过期的SSL证书。 负载平衡器(我们的Web层的前面)发现SSL过期,而不是处理HTTP通信到其中一个IIS服务器,开始显示这个错误。 所以基本上IIS无法服务器请求,为完全不同的原因:)