我放入了一个简单的 HTML 文件,IIS 7 抛出了 500 错误。错误详细信息几乎没有提供任何信息。
一般来说,如果静态 HTML 文件出现此类错误,应该检查什么?
答案1
HTTP 处理程序映射
最近,有人放弃了通配符脚本映射器,这让事情变得混乱。
答案2
答案3
根据我上次遇到的类似问题:
1) 查看 HTTP 日志。您将在 HTTP 日志中看到“sc-status sc-substatus sc-win32-status”的“500 mmm nnn”。命令行中的“net helpmsg nnn”可能会给您结果。
2) 将失败请求跟踪添加到您的安装中,然后使用适当的规则。 XML 结果可能会或可能不会有帮助。
3) 如果您认为这是一个安全问题,请在该服务器的策略中启用文件对象审核,然后将目录及其中的文件的审核设置为“所有人”都失败。检查事件查看器的安全部分。
4) 尝试 Process Monitor(不是 Process Explorer)。运行 Process Monitor 三秒钟左右,时间刚好够接收请求,然后失败。使用失败请求跟踪获取失败的进程 ID。使用 Process Monitor 的过滤器仅显示出现进程 ID 的事件 - 然后您可以看到失败的位置。
答案4
补充一个可能的解决方案,有一个客户端正在使用 ISAPI 过滤器,但指定位置不再有 isapi 过滤器。没有事件日志,sc-winsubstatus 的值为 2(无法找到文件...)因此也检查 ISAPI 过滤器。