访问Windows IIS网站显示"503 Service Unavailable"错误的处理

问题描述

Windows系统服务器使用IIS作为Web服务,访问搭建的网站出现“503 Service Unavailable”报错。

问题原因

一般出现该报错可以先从系统和应用层的日志查看是否有相关记录信息,原因可能有多种。

解决方案

  1. ISAPI筛选器加载的扩展项失败。检查ISAPI筛选器中的加载项不能正常加载。
    Dingtalk_20220517103055.jpg
  2. 应用程序池启动失败,这个问题的原因较多。可能的情况如下。
    • 应用程序池标识异常。
      1. 检查应用程序池中的用户是否被禁用,账户密码是否正常。以下以默认“应用程序池”为例。
        Dingtalk_20220517103145.jpg
      2. 通过上图中第3步可以看到使用的用户。通过用户和组中的用户,即可查看到对应的用户账户是否被禁用。
        Dingtalk_20220517103311.jpg
    • 应用程序池所属用户不在IIS_WPG组或者IIS_WPG组权限异常,其余的情况需要具体情况来具体分析。
      Dingtalk_20220517111634.jpg
  3. 服务器请求量过大,负载过高。
    • 服务器的负载,可以通过服务器中的任务管理器查看CPU和内存以及“联网”的性能状态,也可以通过阿里云控制台中的实例实时信息查看。
  4. 如果在重启服务器后,发现IIS 6.0所承载的所有网站全部无法访问,全部出现Service Unavailable错误,建议通过如下方法进行排查分析。
    • 查看系统日志,如果出现“应用程序池 defaultapppool 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误”错误,请尝试通过如下方法解决。
      1. 单击开始>管理工具>组件服务>计算机>我的电脑>DCOM选项。
      2. 选择其下的IIS Admin Service,右健选择属性
      3. 然后切换到安全选项卡,在启动和激活权限中选中自定义后点击编辑。添加账号Network Service, 给该账号赋予本地启动本地激活的权限。
        Dingtalk_20220517103311.jpg
      4. 在命令行中使用IISRESET命令重新启动IIS,单击开始>运行>CMD,单击确定,然后运行IISRESET。
    • 查看系统日志,如果出现“为应用程序池'DefaultAppPool'提供服务的进程意外终止。进程ID是332。进程退出代码是 0xffffffff。”错误,请尝试通过如下方法解决。
      1. 单击开始>管理工具>Internet 信息服务(IIS)管理器
      2. 定位到应用程序池下报错的相应应用程序池,右键单击选择属性
      3. 切换到运行状况选项卡,取消勾选启用快速失败保护
        Dingtalk_20220517112133.jpg
  5. 如果问题还是未解决,请参阅微软官方KB ,该问题可能是由于某些系统补丁导致的,已知的可能导致该问题的补丁包包括KB973917、KB982666。请参阅如下步骤尝试解决。
    1. 打开系统盘下相应的补丁目录,比如C:\WINDOWS\$NtUninstallKB973917$
    2. 运行子目录spuninst下的spuninst.exe程序卸载补丁。
    3. 重启系统。
      说明:如果相应的补丁目录已经被删除,可以尝试重新下载相应补丁安装后再使用上述方法进行卸载。

适用于

  • 云服务器ECS
阿里云首页 相关技术圈