56

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

4

4 回答 4

72

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

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

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

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

什么是 ASP.NET 中的崩溃(技术上)......以及如果发生这种情况该怎么办?

于 2010-11-11T03:42:16.880 回答
7

如果服务器没有足够的内存也会导致这个问题。这是我个人对 Godaddy VPS 的体验。

于 2013-10-24T13:50:33.423 回答
4

这主要意味着有太多的并发请求,而且它们超过了默认的 1000 个排队请求。也就是说,您的网站有 1000 个或更多排队请求。

如果有长时间运行的任务并因此备份请求队列,则可能会发生这种情况(假设您的应用程序中没有故障)。

根据应用程序池的设置方式,您可能会看到这种情况。通常,应用程序池的进程模型有一个名为 Maximum Worker Processes 的项目。默认情况下为 1。如果您将其设置为大于 1(通常最多为硬件上的最大内核数),您可能不会看到这种情况发生。

请注意,除非该站点非常繁忙,否则您不应看到此内容。如果你这样做,它真的指向长时间运行的任务

于 2010-11-11T03:30:25.583 回答
4

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

于 2013-02-22T20:58:48.097 回答