IIS管理器里没有网站,通常是因为网站未正确启动或应用程序池异常;修改已绑定的域名,只需在IIS管理器中选择网站,编辑绑定,或直接修改配置文件。
IIS里没有网站怎么办?排查思路与解决方案
打开IIS管理器,发现网站列表为空,这确实让人着急,但别急,我们一步步排查,先看左侧连接树,确定你点击的是“网站”节点,如果网站是灰色的,说明它处于停止状态,右键启动即可,如果启动失败,检查应用程序池是否运行,应用程序池停止会导致网站无法启动,很多情况下,网站并没有消失,只是状态不对。
网站未启动或应用程序池异常
在IIS管理器中,点击“应用程序池”,查看对应网站使用的池状态,如果是“已停止”,右键启动,如果启动失败,查看事件查看器,通常有错误日志,可能因为托管管道模式不对,或者标识权限不足,修改标识为LocalSystem或指定用户,往往能解决,据统计,这类问题占IIS故障的相当比例。
权限不足导致IIS管理器不显示网站
如果你以非管理员身份登录,IIS管理器可能只显示部分网站,因为IIS管理器有委派功能,需要管理员权限才能查看所有内容,尝试以管理员身份运行IIS管理器,在Windows Server中,可以右键“以管理员身份运行”,如果还不行,检查用户是否在IIS管理器中具有管理权限,可以在IIS管理器右侧的“管理服务”中设置,如果使用Windows Server Core,需要远程管理,可能配置了受限委派,导致本地管理器不显示。
配置文件损坏或误删除
IIS的配置集中在applicationHost.config,如果这个文件损坏,网站可能不显示,可以尝试从备份恢复,或者使用IIS导出配置功能,备份文件通常位于C:inetpubhistory或系统卷影副本,如果配置文件语法错误,IIS会记录到事件日志,每个网站的Web.config文件也可能影响加载,如果Web.config存在语法错误,IIS可能无法加载网站,检查最近是否修改过配置文件,如果修改过,可以还原到之前版本,对于IIS 8以上,可以使用配置编辑器工具检查语法。
IIS版本与组件问题
不同Windows版本默认IIS版本不同,Windows Server 2016对应IIS 10,Windows 10对应IIS 10,但如果你没有安装“IIS管理控制台”,就无法管理网站,在“启用或关闭Windows功能”中,确保IIS管理工具下的“IIS管理控制台”已勾选,如果只安装了IIS核心组件,没有安装Web管理服务,也可能无法显示,对于IIS 8以上,还需要安装“IIS 管理服务”组件,还有一点,如果安装了多个IIS版本,或者使用IIS Express,管理器可能不显示标准网站。
IIS服务修改已绑定的网站域名,详细步骤
当网站需要更换域名时,修改绑定是最直接的操作,下面介绍几种方法,你可以根据情况选择。
通过IIS管理器修改绑定域名
IIS绑定域名设置方法在GUI中非常直观,打开IIS管理器,选择目标网站,在右侧操作区点击“绑定”,弹出窗口中,会列出当前所有绑定信息,选择要修改的绑定,点击“编辑”,在“主机名”处输入新域名,点击确定,如果需要添加新域名,点击“添加”,输入协议、IP地址、端口和主机名,修改后,网站立即响应新域名,无需重启,注意,如果有多个绑定,逐个修改,不要遗漏,这种方法适合单网站修改,操作风险低,如果网站有SSL证书,记得在绑定中选择正确证书。
直接编辑applicationHost.config文件
对于IIS网站域名修改步骤,如果数量较多,手动GUI操作效率低,可以直接编辑配置文件,文件路径:%SystemRoot%System32inetsrvconfigapplicationHost.config,用记事本或VS Code以管理员身份打开,找到你的网站配置节,
<site name="mysite" id="2">
<bindings>
<binding protocol="http" bindingInformation=":80:olddomain.com" />
</bindings>
</site>
将bindingInformation中的主机名改为新域名,保存文件,IIS会自动检测并应用更改,无需重启,但建议先备份文件,业内专家指出,直接编辑配置文件时,务必确保语法正确,否则可能导致IIS服务无法启动,修改后,可以运行iisreset或直接重启IIS服务来立即生效。
使用命令行工具修改绑定
面向运维人员,可以使用appcmd命令,添加新绑定:appcmd set site "mysite" /+bindings.[protocol='http',bindingInformation=':80:newdomain.com'],删除旧绑定:appcmd set site "mysite" /-bindings.[protocol='http',bindingInformation=':80:olddomain.com'],也可以使用PowerShell的New-WebBinding和Remove-WebBinding cmdlet。New-WebBinding -Name "mysite" -Protocol "http" -HostHeader "newdomain.com" -Port 80,这些方法适合脚本化部署,可以批量操作。
修改域名后需注意的配置
修改绑定后,需确保DNS解析指向新域名,如果网站使用HTTPS,还需更新证书绑定,在IIS中,选择网站,点击“绑定”,选择https绑定,编辑证书,如果证书未包含新域名,可能需要重新申请证书,如果有URL重写规则,需检查规则中是否包含旧域名,进行相应修改,行业共识认为,修改域名后,应测试访问,并检查IIS日志确认新域名请求正常,如果网站有第三方组件或应用配置中硬编码了域名,也需要同步修改。
| 方法 | 操作复杂度 | 适用场景 | 风险 |
|---|---|---|---|
| IIS管理器GUI | 简单 | 单个网站修改 | 低 |
| 直接编辑配置文件 | 中等 | 批量修改、自动化 | 中(需备份) |
| 命令行工具 | 中等 | 脚本化部署 | 中(需熟悉语法) |
IIS里没有网站与域名修改常见问题
问题1:IIS里没有网站,是不是IIS安装有问题?
不一定,首先检查IIS管理器左侧是否选中了“网站”节点,如果选中了但列表为空,可能是网站被删除或配置丢失,可以检查C:inetpubwwwroot目录是否存在,或尝试新建网站测试,如果IIS服务未安装,Windows功能里可能没有IIS管理控制台,多数情况下,是网站未启动或应用程序池停止导致不显示,而不是IIS本身问题,如果网站配置丢失,可以从备份恢复applicationHost.config。
问题2:修改绑定域名后,网站访问不了,怎么办?
修改绑定后,立即生效,但客户端可能因为DNS缓存而访问旧IP,先检查DNS解析是否指向新域名,如果DNS记录未生效,可以临时修改本地hosts文件,检查网站绑定是否包括所有IP地址,如果是:80,则所有域名指向该IP都会响应,如果绑定HTTP,但HTTPS证书未更新,浏览器会提示不安全,检查防火墙是否放行端口,如果问题依旧,查看IIS日志,确认请求是否到达,如果请求到达但返回错误,检查网站目录权限或应用程序池标识。
问题3:如何批量修改多个网站的绑定域名?
批量修改建议使用PowerShell脚本,通过Get-Website获取所有网站,然后循环修改每个网站的绑定,或者直接编辑applicationHost.config文件,替换域名,注意,修改前备份整个配置,IIS没有内置的批量修改界面,但使用脚本可以高效完成,批量修改后,务必重启IIS或运行iisreset使改动生效,如果网站数量多,建议先测试脚本,确保不会误改。
无论是IIS里没有网站,还是需要修改绑定域名,多数问题都源于配置,掌握这些排查和操作步骤,能让你从容应对,操作前备份,修改后测试,这是IIS运维的黄金法则。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/574182.html




