HTTP错误503。服务不可用。

12

我正在努力在IIS8中设置环境,我搜索了很多但是找不到正确的解决方案。

在这里输入图片描述

我检查了错误日志,但是没有头绪。

C:\Windows\System32\LogFiles\HTTPERR

  1. 2013-10-09 09:28:39 192.168.43.205 60172 192.168.43.205 80 HTTP/1.1 GET / 503 2 AppOffline qa.hti.local
  2. 2013-10-09 09:28:39 192.168.43.205 60192 192.168.43.205 80 HTTP/1.1 GET /favicon.ico 503 2 AppOffline qa.hti.local

然后,在事件查看器(Event Viewer)中:

警告:

  1. 应用程序池 'qa.hti.local' 中为协议“http”的侦听器通道在工作进程“11188”中报告侦听器通道故障。数据字段包含错误号。
  2. 应用程序池 'qa.hti.local' 中为协议“http”的侦听器通道在工作进程“7492”中报告侦听器通道故障。数据字段包含错误号。
  3. 应用程序池 'qa.hti.local' 中为协议“http”的侦听器通道在工作进程“9088”中报告侦听器通道故障。数据字段包含错误号。
  4. 应用程序池 'qa.hti.local' 中为协议“http”的侦听器通道在工作进程“9964”中报告侦听器通道故障。数据字段包含错误号。
  5. 应用程序池 'qa.hti.local' 中为协议“http”的侦听器通道在工作进程“7716”中报告侦听器通道故障。数据字段包含错误号。

我不明白这个警告的意思。

错误:应用程序池“qa.hti.local”由于在为该应用程序池提供服务的进程中发生一系列故障而被自动禁用。

注意:我了解连续5次故障会导致应用程序池崩溃,这可以增加。我也尝试增加这个值,但没有成功。

请分享你的想法。


Server Fault中查看。 - Murali Murugesan
10个回答

7

我在搜索解决方案时发现了这个问题,因为我遇到了类似的问题。

我的问题具体与我们的IIS共享配置有关。我们在其中一台服务器上启用了一个功能(Http Redirect),但其他任何服务器都没有安装该功能,因此服务器“功能”与所有服务器不同步。

我通过卸载第一台服务器上的新添加内容,使其与其他服务器匹配,从而解决了该问题。稍后重新启动IIS,AppPools就不再崩溃,一切恢复正常。

因此,如果您正在使用IIS共享配置,并且IIS出现“服务不可用”错误并且AppPools崩溃,则可能是系统配置不同步导致共享配置损坏的症状。希望这篇文章可以帮助某人比我更快地找到解决方案。


当我们从一个服务器迁移到另一个服务器时,遇到了相同的问题。新服务器关闭了AppPools并显示503错误。原来它没有像原始服务器那样安装Http重定向功能。安装缺失的功能解决了问题。 - kojo
@kojo HttpRedirect就是我们缺少的精确功能。 - Kelsey
这解决了我的问题。我在主IIS上安装了ARR,而所有其他实例都没有安装它。安装后,一切都正常工作了。谢谢!!! - CodingEE

4
我曾经遇到过类似的问题,原因是另一个错误(2282 IIS-W3SVC-WP)导致应用程序池停止运行。我的问题是由于配置问题而无法加载模块owssvr.dll。 对我来说,解决方案是将“启用32位应用程序”设置从True更改为false。
我正在在Windows Server 2012上使用Visual Studio 2013部署Sharepoint 2013解决方案。
我知道这可能是一个非常特定的问题,但我想帮助所有遇到同样问题的人。

2

我重新安装了服务器并将applicationHost.config复制到新服务器,但没有安装相应的模块,因此出现了这个错误。我通过在IIS管理器中检查模块并确保已安装模块来解决了这个问题。

更新:在Windows日志->应用程序中,有一些关于缺少哪个模块的信息。


1
感谢“Windows日志”更新。通过以下步骤访问“事件查看器”中的日志:开始>管理工具>事件查看器>Windows日志>应用程序。在我的情况下,这提供了一个缺失的“.dll”的名称。 - IAM_AL_X

1

我在Windows 10 1803更新后也遇到了这个问题。

在事件日志中,早期有关于缺少DLLS的错误,具体是iiswsock.dll和compstat.dll。

在启用以下Windows功能之后(在IIS > WWWServices > Performance Features and AppDev Features下):

  • 动态和静态内容压缩,并且
  • WebSocket协议Windows功能

在IIS重启后,这些错误消失了。


添加静态内容压缩后,它开始工作了。不知道为什么dotnet 5需要这个功能。 - Angel Yordanov

1

您可能没有读取目录的权限。

该目录(以及文件)需要为Windows组“USERS”或Windows组“IIS_IUSRS”和您的应用程序池身份验证提供读取访问权限。


0
这也可能是由于您的软件供应商没有意识到他们在您的2008 R2服务器上安装了32位版本的应用程序池应用程序所致。经过一些故障排除,因为他们要求我重新安装IIS,我检查了Windows应用程序日志并向他们发送了有关其应用程序的x86架构错误的电子邮件。

0
503 2
这个2是子状态码吗?如果是的话,你可能需要确保你的网站没有受到过多(5000+)的请求攻击。

http://support.microsoft.com/kb/943891

数据字段包含错误编号。 错误编号是什么?

0
如果有人需要帮助的话:我们在IIS 10服务器上运行多个https站点。配置新站点的其中一步是授予新应用程序池系统证书的权限。在注册表中,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY下,授予本地机器上的应用程序池完全控制权。这为我们解决了此问题。

0

这可能是因为某个IIS组件丢失了(例如,在新服务器上没有安装其中的许多IIS模块之一)。

需要做的是仔细比较源和目标的IIS配置,并将缺失的部分添加到目标中。

在最近进行的IIS8.5->8.5迁移中,我遇到了这个问题。经过整个堆栈的检查,最后发现缺少了IIS的Web Cert auth组件。

安装方法:

powershell
import-module servermanager
add-windowsfeature Web-Cert-Auth

-1

我曾经遇到过同样的问题,并通过将应用程序池使用的域帐户添加为 Web 服务器上管理员本地组的身份来解决它。也许像 @Lisa-Berlin 上面所说的那样,授予应用程序池标识帐户对应用程序目录的访问权限也可以解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接