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

下面我将按照“从简到繁”的排查顺序,一步步帮你解决这个问题。
第一步:检查最常见的原因(90%的问题出在这里)
检查网站物理路径下的文件是否存在
这是最最常见的原因,IIS 会尝试访问你在网站配置中设置的“物理路径”(Physical Path),但里面的文件可能出了问题。
-
操作方法:
- 打开 IIS 管理器。
- 在左侧“连接”窗格中,找到你的网站,右键点击 -> 管理网站 -> 浏览。
- 这会系统用默认浏览器打开你的网站,并尝试访问你在“默认文档”中配置的第一个文件。
- 重点:不要看浏览器,而是直接去服务器的文件资源管理器,导航到 IIS 管理器中你网站配置的“物理路径”。
- 检查这个文件夹里是否存在 IIS 尝试加载的那个文件(
index.html,default.aspx,Default.htm等)。
-
可能的问题及解决方案:
(图片来源网络,侵删)- 文件不存在:把你的网站主页面(
index.html)复制或移动到这个物理路径下。 - 文件权限错误:IIS 的应用程序池(Application Pool)需要有权读取这个文件夹和里面的文件。
- 解决方案:右键点击物理路径文件夹 -> 属性 -> 安全 选项卡。
- 点击 编辑... -> 添加...,输入
IIS_IUSRS,然后点击“检查名称”确认,点击“确定”。 - 在权限列表中,确保
IIS_IUSRS用户有“读取和执行”、“列出文件夹内容”、“读取”的权限。
- 文件夹权限错误:确保
IIS_IUSRS用户对父文件夹也有“读取”权限。 - 应用程序池身份:检查你的网站使用的应用程序池,右键点击网站 -> 管理应用程序 -> 高级设置,查看“应用程序池”是什么,然后去“应用程序池”列表中,右键点击该池 -> 高级设置 -> 进程模型 -> 标识,通常是
ApplicationPoolIdentity,这个标识会自动在系统中创建一个同名用户(如IIS AppPool\DefaultAppPool),你需要确保这个用户对网站物理路径有读取权限,如果使用的是LocalSystem,权限通常没问题。
- 文件不存在:把你的网站主页面(
检查“默认文档”配置
默认文档是用户访问网站根目录时,IIS 默认尝试加载的文件列表(如 index.html, default.aspx)。
- 操作方法:
- 在 IIS 管理器中,选中你的网站。
- 在中间的“功能视图”中,双击 “默认文档”。
- 检查列表中是否有你的主页文件(
index.html),如果没有,点击 “添加...”,输入你的文件名(如index.html),然后点击“确定”。 - 确保你的主页文件在列表的最顶端,可以通过选中文件后,点击右侧的 “上移” 或 “下移” 按钮来调整顺序,IIS 会从上到下依次尝试加载这些文件。
第二步:检查网站绑定和应用程序池
如果第一步的文件和权限都没问题,那问题可能出在网站的运行环境上。
检查网站绑定
确保网站绑定的端口、IP 地址和主机头是正确的,并且没有被其他网站占用。
- 操作方法:
- 在 IIS 管理器中,右键点击你的网站 -> 编辑绑定...。
- 检查弹出的窗口中的信息:
- 类型:通常是
http。 - IP 地址:如果是
All Unassigned,则表示服务器上所有未绑定的 IP 都可以访问,如果指定了某个 IP,请确保该 IP 正常。 - 端口:默认是
80,请确保防火墙或安全组没有阻止这个端口。 - 主机名:如果你用域名访问(如
www.example.com),这里必须填写你的域名,如果用 IP 访问,这里可以留空。
- 类型:通常是
- 点击 “查看...” 按钮,可以查看端口是否被其他进程占用。
检查应用程序池
应用程序池是网站的运行环境,如果它停止了或配置错误,网站自然无法运行。

- 操作方法:
- 在 IIS 管理器左侧,点击 “应用程序池”。
- 找到你的网站正在使用的应用程序池(可以在网站的高级设置里看到)。
- 右键点击该应用程序池 -> 启动(如果显示的是“停止”)。
- 如果是“启动”状态,可以尝试 “回收”,这会重新加载环境。
- 双击打开应用程序池的“高级设置”:
- .NET CLR 版本:如果你的网站是 .NET 开发的(如 ASP.NET),请确保这里选择的版本与你的项目匹配(如
无托管代码表示不是 .NET 网站)。 - 托管模式:如果是集成模式,确保你的网站代码兼容。
- .NET CLR 版本:如果你的网站是 .NET 开发的(如 ASP.NET),请确保这里选择的版本与你的项目匹配(如
第三步:检查 IIS 和系统服务
如果以上都正常,可能是 IIS 本身或底层服务出了问题。
检查 IIS 服务是否运行
确保 World Wide Web Publishing Service (W3SVC) 服务正在运行。
- 操作方法:
- 按
Win + R,输入services.msc,回车。 - 在服务列表中,找到 World Wide Web Publishing Service。
- 确保其“状态”为“正在运行”,“启动类型”为“自动”,如果不是,右键点击 -> 属性,将其更改为“自动”并启动。
- 按
检查 MIME 类型
如果你访问的是一个静态网站(如 HTML, CSS, JS, 图片),但服务器不认识这些文件类型,也可能导致错误。
- 操作方法:
- 在 IIS 管理器中,选中你的网站。
- 在“功能视图”中,双击 “MIME 类型”。
- 检查列表中是否包含你网站用到的文件类型。
.html或.htm.css.js.jpg,.png,.gif
- 如果没有,点击 “添加...”,扩展名填写
.html,MIME 类型填写text/html,然后确定,对其他缺失的类型也进行同样操作。
第四步:使用详细的错误信息进行排查
IIS 默认返回一个友好的错误页面,隐藏了真正的错误原因,我们需要让它显示详细的错误信息。
- 操作方法:
- 在 IIS 管理器中,选中你的网站。
- 在“功能视图”中,双击 “错误页”。
- 在右侧操作栏,点击 “打开功能”(如果还没打开的话)。
- 在错误页列表中,找到 HTTP 错误 403.14 - Forbidden(这个错误码经常伴随着“建设中”的提示),双击它。
- 在右侧,选择 “详细错误” 模式。
- 再次用浏览器访问你的网站,页面会显示非常详细的错误信息,找不到 Default.htm”、“目录列表被禁止”等,根据这个具体信息,你就能精确地定位到问题了。
总结与快速自查清单
如果不想看长篇大论,可以按这个清单快速检查一遍:
- 文件存在吗? -> 去 IIS 配置的物理路径下看,主页文件(如
index.html)在不在。 - 权限对吗? -> 给
IIS_IUSRS用户物理路径的“读取”权限。 - 默认文档对吗? -> 检查“默认文档”列表,你的主页文件在最上面吗?
- 网站启动了吗? -> 检查它使用的“应用程序池”是否在运行。
- 端口对吗? -> 检查“网站绑定”里的端口(通常是 80)是否被防火墙阻止。
- 服务运行吗? ->
services.msc里的World Wide Web Publishing Service是“正在运行”吗?
按照这个顺序,从最简单的文件和权限开始排查,90% 的“建设中”问题都能解决,如果问题依旧,请提供你看到的详细错误信息,我们可以进行更深入的定位。
