Server 2008 Web 站 500 错误怎么查
IIS 上站点 500/500.19/500.21 等错误的分层排查:先看错误后缀细分,再按 .NET 版本、应用池、权限三条线定位。
简短答案
500 是「大类」,先看错误后缀定方向:500.19 是 .NET 程序集加载失败、500.21 是 CLR 未装或版本错、500.34/500.35 是 CGI/处理程序问题。后缀不对就不知道修哪;IIS 运行在 Server 2008 条目 对应的 Web Server 组件上,先看响应里或 IIS 日志里的细分码。
现象对照
| 错误 | 最可能的原因 |
|---|---|
| 500.19 | 应用引用的程序集在 GAC/目录里缺失或版本不符 |
| 500.21 | 对应 .NET 版本运行时未装,或应用池绑了错版本 |
| 500.34 / 500.35 | CGI/Handler 映射失败(脚本处理程序未注册) |
| 500 无后缀 | 站点级配置异常(web.config 语法错、路径权限) |
排查步骤
- 开详细错误:IIS 管理器 → 站点 → 功能视图 → 高级设置 → 自定义错误,关掉「显示普通消息」,让真实后缀显示出来;同时在
web.config临时加customErrors mode="Off"。 - IIS 日志(
%SystemDrive%\inetpub\logs\LogFiles)找最近一条 500,记下完整码与时间,对照上面的表定方向。 - .NET 线:500.19/500.21 查「已安装的 .NET 运行时」与站点/应用池绑定的版本是否一致;多版本共存时逐站核对。Web 配置边界见 Web Server 2008 条目。
- 权限线:站点目录 IUSR/应用池身份有读执行权限;临时改应用池为 LocalSystem 测试,能通就是权限问题。
- 仍无法定位时用 IIS 的故障排除日志(应用程序日志「应用程序」事件里最近 ERROR),对照 Server 2008 R2 条目 的组件说明补缺件;拿不准的组件缺失「以厂商文档为准」。
别拿 502/404 的修法套 500:500 一定是服务端(.NET/处理程序/权限)问题,跟路由、反代无关。
操作小结
- 先开后缀,定错误细分
- IIS 日志找码定位方向
- .NET 版本与权限两条线分治
- 兜底查应用日志