下面我把 IIS 配置好但网站无法访问 的问题,按最常见 → 最容易忽略 → 服务器级别给你一套系统排查清单,一步一步对照,基本都能定位问题。


IIS 配置好网站却无法访问

全面排查指南(实战)


一、先做 30 秒快速自检(最重要)

✅ 1️⃣ 本机能否访问?

在服务器上直接访问:

http://localhost
http://127.0.0.1
http://localhost:端口

  • ❌ 本机都访问不了 → IIS / 站点 / 端口问题
  • ✅ 本机能访问,外网不能 → 防火墙 / 网络问题

✅ 2️⃣ IIS 服务是否正常运行

打开 服务

  • World Wide Web Publishing Service(必须运行)
  • Windows Process Activation Service(必须运行)

二、站点配置常见问题(90% 出在这里)


🔹 1️⃣ 站点是否“已启动”

IIS 管理器 → 网站

  • 状态必须是 “已启动”
  • 如果启动失败 → 查看 事件查看器

🔹 2️⃣ 绑定(Bindings)配置错误 ⭐⭐⭐

IIS → 站点 → 绑定

重点检查:

项目是否正确
端口是否被占用
IP建议先用 全部未分配
主机名测试时先留空

📌 新手建议绑定:

IP:全部未分配
端口:80
主机名:空


🔹 3️⃣ 端口被占用

查看端口占用:

netstat -ano | findstr :80

  • 如果被占用(如 Apache、Nginx)
  • 解决方式:
    • 关闭占用服务
    • 或 IIS 改端口(如 8080)

三、网站物理路径 & 权限问题


🔹 4️⃣ 物理路径是否存在

  • IIS 站点 → 基本设置
  • 路径必须真实存在
  • 不能指向压缩包或不存在目录

🔹 5️⃣ 目录权限不足(极其常见)

给站点目录添加权限:

IIS_IUSRS   → 读取 + 执行

步骤:

  1. 右键网站目录 → 属性 → 安全
  2. 添加 IIS_IUSRS
  3. 勾选:读取、读取和执行

四、应用程序池问题(ASP.NET 必看)


🔹 6️⃣ 应用池是否启动

IIS → 应用程序池

  • 状态必须是 已启动
  • 崩溃会导致 503

🔹 7️⃣ .NET 版本不匹配

程序类型应用池设置
ASP.NET Core无托管代码
ASP.NET 4.xv4.0
ASP.NET 2.0v2.0

📌 ASP.NET Core 必须:

  • 安装 .NET Hosting Bundle
  • 使用 反向代理(ANCM)

五、HTTP 错误码对照排查

错误含义解决方向
403禁止访问权限 / 默认文档
404找不到路径 / 绑定
500程序异常程序日志
502网关错误ASP.NET Core 未启动
503服务不可用应用池停止

六、防火墙 & 网络问题(外网访问失败)


🔹 8️⃣ Windows 防火墙未放行端口

放行端口(如 80 / 8080):

高级防火墙 → 入站规则 → 新建规则 → 端口


🔹 9️⃣ 云服务器安全组(阿里云 / 腾讯云)

必须放行端口:

  • 80 / 443
  • 或你自定义端口

⚠️ 很多人只放行了防火墙,没放行云安全组


七、hosts / 域名问题


🔹 🔟 域名是否解析到正确 IP

ping 域名

  • IP 错误 → 域名解析问题

🔹 1️⃣1️⃣ hosts 冲突

C:\Windows\System32\drivers\etc\hosts

确认没有错误映射


八、日志是终极武器

IIS 日志路径:

C:\inetpub\logs\LogFiles

Windows 事件查看器:

Windows 日志 → 应用程序

重点看:

  • IIS
  • .NET Runtime
  • Application Error

九、最快定位流程(照着走)

本机访问?
  ↓
站点启动?
  ↓
绑定 / 端口?
  ↓
目录权限?
  ↓
应用池?
  ↓
防火墙 / 云安全组?


十、如果你愿意,我可以直接帮你定位

你直接把以下信息发我👇
1️⃣ 网站类型(静态 / ASP.NET / ASP.NET Core)
2️⃣ 错误提示或错误码
3️⃣ 访问方式(IP / 域名 / 端口)
4️⃣ 是本机还是外网访问失败

我可以 一步步精确定位,不绕弯