菜鸟科技网

IIS网站显示建设中却打不开,怎么办?

“建设中”这个提示,在 IIS 中通常不是指一个静态的“Under Construction”页面,而是IIS 尝试加载你指定的默认文档(Default Document)失败后,返回的一个通用错误页面

IIS网站显示建设中却打不开,怎么办?-图1
(图片来源网络,侵删)

下面我将按照“从简到繁”的排查顺序,一步步帮你解决这个问题。


第一步:检查最常见的原因(90%的问题出在这里)

检查网站物理路径下的文件是否存在

这是最最常见的原因,IIS 会尝试访问你在网站配置中设置的“物理路径”(Physical Path),但里面的文件可能出了问题。

  • 操作方法

    1. 打开 IIS 管理器
    2. 在左侧“连接”窗格中,找到你的网站,右键点击 -> 管理网站 -> 浏览
    3. 这会系统用默认浏览器打开你的网站,并尝试访问你在“默认文档”中配置的第一个文件。
    4. 重点:不要看浏览器,而是直接去服务器的文件资源管理器,导航到 IIS 管理器中你网站配置的“物理路径”。
    5. 检查这个文件夹里是否存在 IIS 尝试加载的那个文件(index.html, default.aspx, Default.htm 等)。
  • 可能的问题及解决方案

    IIS网站显示建设中却打不开,怎么办?-图2
    (图片来源网络,侵删)
    • 文件不存在:把你的网站主页面(index.html)复制或移动到这个物理路径下。
    • 文件权限错误:IIS 的应用程序池(Application Pool)需要有权读取这个文件夹和里面的文件。
      • 解决方案:右键点击物理路径文件夹 -> 属性 -> 安全 选项卡。
      • 点击 编辑... -> 添加...,输入 IIS_IUSRS,然后点击“检查名称”确认,点击“确定”。
      • 在权限列表中,确保 IIS_IUSRS 用户有“读取和执行”、“列出文件夹内容”、“读取”的权限。
    • 文件夹权限错误:确保 IIS_IUSRS 用户对父文件夹也有“读取”权限。
    • 应用程序池身份:检查你的网站使用的应用程序池,右键点击网站 -> 管理应用程序 -> 高级设置,查看“应用程序池”是什么,然后去“应用程序池”列表中,右键点击该池 -> 高级设置 -> 进程模型 -> 标识,通常是 ApplicationPoolIdentity,这个标识会自动在系统中创建一个同名用户(如 IIS AppPool\DefaultAppPool),你需要确保这个用户对网站物理路径有读取权限,如果使用的是 LocalSystem,权限通常没问题。

检查“默认文档”配置

默认文档是用户访问网站根目录时,IIS 默认尝试加载的文件列表(如 index.html, default.aspx)。

  • 操作方法
    1. 在 IIS 管理器中,选中你的网站。
    2. 在中间的“功能视图”中,双击 “默认文档”
    3. 检查列表中是否有你的主页文件(index.html),如果没有,点击 “添加...”,输入你的文件名(如 index.html),然后点击“确定”。
    4. 确保你的主页文件在列表的最顶端,可以通过选中文件后,点击右侧的 “上移”“下移” 按钮来调整顺序,IIS 会从上到下依次尝试加载这些文件。

第二步:检查网站绑定和应用程序池

如果第一步的文件和权限都没问题,那问题可能出在网站的运行环境上。

检查网站绑定

确保网站绑定的端口、IP 地址和主机头是正确的,并且没有被其他网站占用。

  • 操作方法
    1. 在 IIS 管理器中,右键点击你的网站 -> 编辑绑定...
    2. 检查弹出的窗口中的信息:
      • 类型:通常是 http
      • IP 地址:如果是 All Unassigned,则表示服务器上所有未绑定的 IP 都可以访问,如果指定了某个 IP,请确保该 IP 正常。
      • 端口:默认是 80,请确保防火墙或安全组没有阻止这个端口。
      • 主机名:如果你用域名访问(如 www.example.com),这里必须填写你的域名,如果用 IP 访问,这里可以留空。
    3. 点击 “查看...” 按钮,可以查看端口是否被其他进程占用。

检查应用程序池

应用程序池是网站的运行环境,如果它停止了或配置错误,网站自然无法运行。

IIS网站显示建设中却打不开,怎么办?-图3
(图片来源网络,侵删)
  • 操作方法
    1. 在 IIS 管理器左侧,点击 “应用程序池”
    2. 找到你的网站正在使用的应用程序池(可以在网站的高级设置里看到)。
    3. 右键点击该应用程序池 -> 启动(如果显示的是“停止”)。
    4. 如果是“启动”状态,可以尝试 “回收”,这会重新加载环境。
    5. 双击打开应用程序池的“高级设置”:
      • .NET CLR 版本:如果你的网站是 .NET 开发的(如 ASP.NET),请确保这里选择的版本与你的项目匹配(如 无托管代码 表示不是 .NET 网站)。
      • 托管模式:如果是集成模式,确保你的网站代码兼容。

第三步:检查 IIS 和系统服务

如果以上都正常,可能是 IIS 本身或底层服务出了问题。

检查 IIS 服务是否运行

确保 World Wide Web Publishing Service (W3SVC) 服务正在运行。

  • 操作方法
    1. Win + R,输入 services.msc,回车。
    2. 在服务列表中,找到 World Wide Web Publishing Service
    3. 确保其“状态”为“正在运行”,“启动类型”为“自动”,如果不是,右键点击 -> 属性,将其更改为“自动”并启动。

检查 MIME 类型

如果你访问的是一个静态网站(如 HTML, CSS, JS, 图片),但服务器不认识这些文件类型,也可能导致错误。

  • 操作方法
    1. 在 IIS 管理器中,选中你的网站。
    2. 在“功能视图”中,双击 “MIME 类型”
    3. 检查列表中是否包含你网站用到的文件类型。
      • .html.htm
      • .css
      • .js
      • .jpg, .png, .gif
    4. 如果没有,点击 “添加...”,扩展名填写 .html,MIME 类型填写 text/html,然后确定,对其他缺失的类型也进行同样操作。

第四步:使用详细的错误信息进行排查

IIS 默认返回一个友好的错误页面,隐藏了真正的错误原因,我们需要让它显示详细的错误信息。

  • 操作方法
    1. 在 IIS 管理器中,选中你的网站。
    2. 在“功能视图”中,双击 “错误页”
    3. 在右侧操作栏,点击 “打开功能”(如果还没打开的话)。
    4. 在错误页列表中,找到 HTTP 错误 403.14 - Forbidden(这个错误码经常伴随着“建设中”的提示),双击它。
    5. 在右侧,选择 “详细错误” 模式。
    6. 再次用浏览器访问你的网站,页面会显示非常详细的错误信息,找不到 Default.htm”、“目录列表被禁止”等,根据这个具体信息,你就能精确地定位到问题了。

总结与快速自查清单

如果不想看长篇大论,可以按这个清单快速检查一遍:

  1. 文件存在吗? -> 去 IIS 配置的物理路径下看,主页文件(如 index.html)在不在。
  2. 权限对吗? -> 给 IIS_IUSRS 用户物理路径的“读取”权限。
  3. 默认文档对吗? -> 检查“默认文档”列表,你的主页文件在最上面吗?
  4. 网站启动了吗? -> 检查它使用的“应用程序池”是否在运行。
  5. 端口对吗? -> 检查“网站绑定”里的端口(通常是 80)是否被防火墙阻止。
  6. 服务运行吗? -> services.msc 里的 World Wide Web Publishing Service 是“正在运行”吗?

按照这个顺序,从最简单的文件和权限开始排查,90% 的“建设中”问题都能解决,如果问题依旧,请提供你看到的详细错误信息,我们可以进行更深入的定位。

分享:
扫描分享到社交APP
上一篇
下一篇