下面我把 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 → 读取 + 执行
步骤:
- 右键网站目录 → 属性 → 安全
- 添加 IIS_IUSRS
- 勾选:读取、读取和执行
四、应用程序池问题(ASP.NET 必看)
🔹 6️⃣ 应用池是否启动
IIS → 应用程序池
- 状态必须是 已启动
- 崩溃会导致 503
🔹 7️⃣ .NET 版本不匹配
| 程序类型 | 应用池设置 |
|---|---|
| ASP.NET Core | 无托管代码 |
| ASP.NET 4.x | v4.0 |
| ASP.NET 2.0 | v2.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️⃣ 是本机还是外网访问失败
我可以 一步步精确定位,不绕弯。