本文介绍IIS(Internet Information Services)作为Web服务的网站,访问故障相关的问题及解决方案。
本文介绍的IIS Web网站访问故障相关问题如下:
访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”,如何处理?
问题描述
访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”。
问题原因
该提示没有提供具体的错误项,您需要先查看网站的真实报错信息,才能针对性的定位和解决问题。本文主要介绍如何查看该场景下网站的真实报错信息。
您也可以通过网站运行过程中的常见问题排查流程,逐步排查具体问题并根据对应方案解决问题,具体操作,请参见无法访问ECS实例中运行网站的快速排查方法。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
您可以执行如下操作,查看真实报错信息。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的左侧导航栏,单击目标网站。
在IIS区域,双击错误页。
在页面右侧操作区域中,单击编辑功能设置。
在编辑错误页设置页面,选择详细错误,然后单击确定。
重新访问网站,并按
Ctrl + F5
键强制刷新浏览器。您可以查看到网站的真实报错信息。
根据报错信息,解决相关问题后重新访问该网站。
正常访问,该问题解决。
如何在Windows实例的IIS网站中设置禁止通过IP地址直接访问?
问题描述
当在Windows实例上的IIS站点配置了允许通过IP地址直接访问(即IIS中绑定了空主机头)时,可以通过IP地址直接访问到服务器中IIS的默认站点。当有域名(包括恶意域名或未备案域名等)解析到该IP地址时,会通过该域名直接访问到网站内容,存在安全风险。
问题原因
当IIS中存在绑定空主机头时,会导致使用IP地址能够直接访问到IIS对应绑定空主机头的网站。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
您可以通过删除IIS中绑定空主机头的方式来禁止通过IP地址直接访问IIS网站,操作步骤如下:
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的左侧导航栏,单击目标网站,然后单击操作列的绑定,在网站绑定对话框的空主机头(即主机名参数为空)基础上再绑定一个网站域名。
以绑定
example.aliyundoc.com
域名为例,如图所示。使用服务器的公网IP地址和已绑定的
example.aliyundoc.com
域名访问网站。通过服务器的公网IP和域名都可以访问该网站,如图所示。
如果有其他恶意域名或未备案域名(例如
demo.aliyundoc.com
)解析到了服务器的IP地址,虽然在IIS中未绑定该主机头,但是也可以成功访问该网站,如图所示。
禁止通过IP地址直接访问网站。
在 Internet Information Services (IIS) 管理器页面的左侧导航栏,单击目标网站,然后单击操作列的绑定。
在网站绑定对话框中单击空主机头(即主机名参数为空),单击删除,保留您需要的域名即可。
以保留
example.aliyundoc.com
域名为例,如图所示。使用其他恶意域名或未备案域名重新访问网站验证是否成功禁止通过IP地址直接访问网站。
恶意域名或未备案域名(例如
demo.aliyundoc.com
)即使解析到服务器的IP地址,也无法正常访问该网站,如图所示,即成功禁止通过IP地址直接访问网站。
基于IIS配置的网站因服务端口被占用导致无法访问,如何处理?
问题描述
访问基于IIS配置的网站失败,然后在Windows实例上使用netstat
命令查看IIS服务端口处于正常监听状态,并且网站系统进程处于运行状态。
问题原因
由于网站服务器端口被占用,导致无法访问网站。
解决方案
本操作步骤以网站服务端口为80端口、基于IIS配置网站的Windows实例操作系统为Windows Server 2019数据中心版64位中文版为例进行说明,具体操作以您实际的服务端口和Windows实例操作系统为准。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
在搜索栏输入
cmd
,然后单击命令提示符。执行
netstat -ano | findstr 80
命令,检查服务端口是否被监听,即服务端口是否处于LISTENING状态。以PID号即进程程序号为
4
的进程占用了IIS的80服务端口导致无法正常访问网站为例,回显示例如下。服务端口监听中:
如果80端口处于监听状态,有可能是其他程序占用了80端口,您可以通过
taskkill <PID>
(命令中<PID>
为程序进程号)来关闭相关程序,然后执行iisreset /noforce
命令重启IIS程序。在本示例中,您需要执行
taskkill 4
命令来关闭占用80端口的程序,然后执行iisreset /noforce
命令重启IIS程序。服务端口未监听:
如果80端口处于未监听状态,请您重新运行IIS程序或检查网站是否处于运行状态。
重新访问网站。
正常访问,该问题解决。
访问基于IIS搭建的网站提示“403.14-Forbidden”错误,如何处理?
问题描述
在Windows实例上,访问基于IIS搭建的网站提示“HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容”错误。
问题原因
导致该问题的可能原因如下:
解决方案
配置默认文档
如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在。
启用目录浏览
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
使用IIS管理器启用目录浏览,操作步骤如下:
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的左侧导航栏,单击主页。
在IIS区域,双击目录浏览。
在页面右侧操作区域中,单击启用。
重新访问网站。
正常访问,该问题解决。
Windows实例中IIS网站无法访问,出现“0x80070002系统找不到指定的文件”错误怎么办?
问题描述
Windows实例中基于IIS搭建的网站无法访问。操作系统日志中出现大量类似如下错误信息。
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件。
问题原因
该问题通常是由于系统中存在多个版本的.NetFramework
冲突所导致的。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
您可以卸载并重新安装指定版本的ASP.NET以解决该问题。本文以.NetFramework 2.0
为例。
用Everything软件或系统自带搜索查找
aspnet_regiis.exe
文件,进入对应的.NetFramework 2.0
版本所在目录。说明.NetFramework 2.0
版本所在目录通常位于C:\Windows\Microsoft.NET\Framework64\v2.0.50727
。在目录地址栏输入
cmd
,打开命令提示符。执行如下命令,卸载指定版本的ASP.NET。
aspnet_regiis.exe -u
执行如下命令,安装指定版本的ASP.NET。
aspnet_regiis.exe -i
执行如下命令,重启IIS,再次访问网站,若网站可以正常访问,说明问题已解决。
iisreset /noforce
通过FTP over TLS方式连接Windows实例上IIS服务创建的FTP站点时,提示“534 Policy requires SSL”信息,如何处理?
问题描述
通过FTP over TLS方式连接Windows实例上IIS服务创建的FTP站点时,提示“534 Policy requires SSL”信息,无法连接FTP站点。
问题原因
由该问题的“534 Local policy on server does not allow TLS secure connections.”响应信息可知,FTP站点的FTP SSL 设置参数不正确导致该问题。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在FTP主页的FTP区域,双击FTP SSL设置。
在FTP SSL设置区域,将SSL 策略设置为允许 SSL 连接,然后在操作列单击应用。
再次访问该FTP站点。
Windows实例访问使用IIS创建的网站提示“Bad Request (Invalid Hostname)”错误如何处理?
问题描述
在Windows实例上访问使用IIS创建的网站时,提示“Bad Request (Invalid Hostname)”错误,如图所示。
问题原因
被访问的网站未在IIS中绑定域名或者在IIS中已绑定的域名存在冲突导致该问题。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的左侧导航栏,单击目标网站,然后单击操作列的绑定。
在网站绑定页面,绑定域名或者检查已绑定的域名信息是否正确。
添加域名。
在网站绑定页面,单击添加。
在添加网站绑定页面,根据页面参数设置网站域名信息,然后单击确定。
查看或修改已绑定域名。
在网站绑定页面,双击已绑定的网站。
在编辑网站绑定页面,查看网站信息。
如果您查看域名信息后,需要修改域名,您可以在当前页面直接修改,然后单击确定。
重新访问网站。
正常访问,该问题解决。
访问Windows实例上使用IIS部署的网站时,出现“500.19-xxx中不允许绝对物理路径xxx”报错,如何处理?
问题描述
访问Windows实例上使用IIS部署的网站时,出现“500.19-xxx中不允许绝对物理路径xxx”报错,报错示例如下。
HTTP 错误 500.19 - Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”,请改用相对路径。
问题原因
该问题可能是ApplicationHost.config
或Web.config
文件中存在格式不正确或无法识别的XML元素导致。
解决方案
您需要将IIS无法识别的XML元素,从ApplicationHost.config
或Web.config
文件中删除,操作步骤如下:
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开IIS管理器。
在桌面左下角,选择
> 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的左侧导航栏,单击目标网站,然后在操作区域单击浏览,进入该网站的站点目录。
打开站点目录下的
web.config
配置文件后,删除配置文件中的httpErrors
内容,然后保存并关闭web.config
配置文件。待删除的
httpErrors
内容示例如下:<httpErrors> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="C:\inetpub\custerr\zh-CN\404.html" responseMode="File" /> </httpErrors>
重启IIS。
在搜索栏输入
cmd
,然后单击命令提示符。执行如下命令,重启IIS。
iisreset /noforce
重新访问网站。
正常访问,该问题解决。