文档

IIS Web网站访问故障

更新时间:

本文介绍IIS(Internet Information Service)作为Web服务的网站,访问故障相关的问题及解决方案。

本文介绍的IIS Web网站访问故障相关问题如下:

访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”,如何处理?

问题描述

访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”。

500错误

问题原因

该提示没有提供具体的错误项,您需要先查看网站的真实报错信息,才能针对性的定位和解决问题。本文主要介绍如何查看该场景下网站的真实报错信息。

说明

您也可以通过网站运行过程中的常见问题排查流程,逐步排查具体问题并根据对应方案解决问题,具体操作,请参见无法访问ECS实例中运行网站的快速排查方法

解决方案

说明

本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。

您可以执行如下操作,查看真实报错信息。

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述

  2. 在桌面左下角,选择开始图标 > 服务器管理器

    打开服务器管理器
  3. 服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器

  4. Internet Information Services (IIS) 管理器页面左侧导航栏,单击目标网站。查看IIS网站

  5. IIS区域,双击错误页

  6. Internet Information Services (IIS) 管理器页面右侧操作区域中,单击编辑功能设置在错误页编辑功能设置

  7. 编辑错误页设置页面,选择详细错误,然后单击确定详细错误

  8. 重新访问网站,并按Ctrl+F5键强制刷新浏览器。

    您可以查看到网站的真实报错信息。

  9. 根据报错信息,解决相关问题后重新访问该网站。

    网站访问成功,问题解决。

如何在Windows实例的IIS网站中设置禁止通过IP地址直接访问?

问题描述

当在Windows实例上的IIS站点配置了允许通过IP地址直接访问(即IIS中绑定了空主机头)时,可以通过IP地址直接访问到服务器中IIS的默认站点。当有域名(包括恶意域名或未备案域名等)解析到该IP地址时,会通过该域名直接访问到网站内容,存在安全风险。

问题原因

当IIS中存在绑定空主机头时,会导致使用IP地址能够直接访问到IIS对应绑定空主机头的网站。

解决方案

说明

本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。

您可以通过删除IIS中绑定空主机头的方式来禁止通过IP地址直接访问IIS网站,操作步骤如下:

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述

  2. 打开IIS管理器。

    1. 在桌面左下角,选择开始图标 > 服务器管理器

      打开服务器管理器
    2. 服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器

  3. 在左侧导航栏单击目标网站,然后单击操作列的绑定,在网站绑定对话框的空主机头(即主机名参数为空)基础上再绑定一个网站域名。

    以绑定example.aliyundoc.com域名为例,如图所示。

    绑定域名
  4. 使用服务器的公网IP地址和已绑定的example.aliyundoc.com域名访问网站。

    • 通过服务器的公网IP和域名都可以访问该网站,如图所示。

    • 如果有其他恶意域名或未备案域名(例如demo.aliyundoc.com)解析到了服务器的IP地址,虽然在IIS中未绑定该主机头,但是也可以成功访问该网站,如图所示。

  5. 禁止通过IP地址直接访问网站。

    1. Internet Information Services (IIS) 管理器的左侧导航栏单击目标网站,然后单击操作列的绑定

    2. 网站绑定对话框中单击空主机头(即主机名参数为空),单击删除,保留您需要的域名即可。

      以保留example.aliyundoc.com域名为例,如图所示。添加域名

    3. 使用其他恶意域名或未备案域名重新访问网站验证是否成功禁止通过IP地址直接访问网站。

      恶意域名或未备案域名(例如demo.aliyundoc.com)即使解析到服务器的IP地址,也无法正常访问该网站,如图所示,即成功禁止通过IP地址直接访问网站。image

基于IIS配置的网站因服务端口被占用导致无法访问,如何处理?

问题描述

访问基于IIS配置的网站失败,然后在Windows实例上使用netstat命令查看IIS服务端口处于正常监听状态,并且网站系统进程处于运行状态。

问题原因

由于网站服务器端口被占用,导致无法访问网站。

解决方案

说明

本操作步骤以网站服务端口为80端口、基于IIS配置网站的Windows实例操作系统为Windows Server 2019数据中心版64位中文版为例进行说明,具体操作以您实际的服务端口和Windows实例操作系统为准。

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述

  2. 在搜索栏输入cmd,然后单击命令提示符

    20230120131443
  3. 执行netstat -ano | findstr 80命令,检查服务端口是否被监听,即服务端口是否处于LISTENING状态。

    以PID号即进程程序号为4的进程占用了IIS的80服务端口导致无法正常访问网站为例,回显示例如下。

    80端口是否处于监听状态
    • 服务端口监听中:

      如果80端口处于监听状态,有可能是其他程序占用了80端口,您可以通过taskkill <PID>(命令中<PID>为程序进程号)来关闭相关程序,然后重启IIS程序。

      在本示例中,您需要执行taskkill 4命令来关闭占用80端口的程序,然后重启IIS程序。

      说明

      重启IIS程序的具体操作,请参见重启IIS

    • 服务端口未监听:

      如果80端口处于未监听状态,请您重新运行IIS程序或检查网站是否处于运行状态。

  4. 重新访问该网站。

    网站访问成功,问题解决。

访问基于IIS搭建的网站提示“403.14-Forbidden”错误,如何处理?

问题描述

在Windows实例上,访问基于IIS搭建的网站提示“HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容”错误,如图所示:

问题原因

导致该问题的可能原因如下:

  • 没有为请求的URL配置默认文档。更多信息,请参见配置默认文档

  • 没有在IIS网站所在Windows实例上启用目录浏览。您可以使用IIS管理器启用目录浏览,具体操作,请参见启用目录浏览

解决方案

配置默认文档

如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在。

启用目录浏览

说明

本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。

使用IIS管理器启用目录浏览,操作步骤如下:

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述

  2. 在桌面左下角,选择开始图标 > 服务器管理器

    打开服务器管理器
  3. 服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器

  4. Internet Information Services (IIS) 管理器页面的IIS区域,双击目录浏览目录浏览

  5. Internet Information Services (IIS) 管理器页面右侧操作区域中,单击启用启用目录浏览

  6. 重新访问该网站。

    网站访问成功,问题解决。

  • 本页导读 (1)
文档反馈