【问题标题】:What possibilities can cause "Service Unavailable 503" error? [closed]哪些可能会导致“服务不可用 503”错误? [关闭]
【发布时间】:2011-05-08 05:57:43
【问题描述】:

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

【问题讨论】:

  • 其实还有many possible reasons
  • 关门了?知道许多答案中的一些或全部是什么没有用吗?堆栈溢出很奇怪。不得提供所有类型的信息,只提供一种特定类型! ;)
  • Stack 溢出这种奇怪的活动就在我们的幕后。无论如何,这是我最喜欢这个网站的天才程序员的网站。

标签: asp.net-mvc iis windows-server-2003 http-status-code-503


【解决方案1】:

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

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

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

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

【讨论】:

  • 对不起Shiv。这是不正确的。 support.microsoft.com/kb/943891
  • 您所说的将导致服务器太忙错误。问题是服务不可用。这两个问题完全不同。检查我的答案。
  • @MemoryLeak,您需要查看您的应用程序池和设置,并在两台服务器之间进行比较。还要查找与已配置应用程序池的 .NET 版本有关的任何冲突,并确保这是您的应用程序所需的版本。 Alos 会寻找共享同一应用程序池的其他应用程序。
  • 没问题,Shiv。只是想重申一下,尽管数量很大可能最终会出现问题......根本原因始终是崩溃[或由于应用程序池被禁用而导致服务不可用 - 503]。您可以很容易地重现此错误。
  • Shiv Kumar 是正确的。
【解决方案2】:

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

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

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

在任何一种情况下,问题都是您的工作进程出现故障,您应该从崩溃的角度对其进行故障排除。

What is a Crash (technically)... in ASP.NET and what to do if it happens?

【讨论】:

  • 是的。还请检查应用程序池正在使用的身份是否仍然有效。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      最近更新 更多