【发布时间】:2014-07-17 04:52:50
【问题描述】:
我在 IIS7 中发现了一个错误,正在寻找解决方法。在为仍然在我的服务器上拥有经典 ASP 站点的客户端关闭客户端和服务器端调试后,我惊恐地发现 IIS 7 仍在向客户端发送完整详细的消息! 我还指定了自定义错误页面(所有这些都重定向到通用错误页面,除了 404 错误 - 那些只是完整显示,包括相关网站的内部路径)。 我无计可施,似乎找不到解决方法或补丁或任何东西。
我做了一个 hack,它生成“页面无法显示,因为发生了内部服务器错误。”而不是通过将以下内容放入相关 Classic ASP 站点的 web.config 文件中来显示 404 错误:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<remove value="index.html" />
<remove value="index.php" />
<remove value="default.aspx" />
<remove value="iisstart.htm" />
<remove value="index.htm" />
<remove value="Default.htm" />
<add value="index.asp" />
</files>
</defaultDocument>
<httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
<remove statusCode="404" />
<error statusCode="404" path="~\error404.htm" />
</httpErrors>
</system.webServer>
</configuration>
不幸的是,httpErrors 标记似乎不适用于经典 ASP 站点,无论您在路径变量中输入什么,都会发生内部服务器错误。关键是在此处删除状态代码,因为在 IIS 7 中无法全局执行此操作(至少我可以找到)。好消息是没有详细的 404 错误,坏消息是无法捕获 404 错误(对于 ASP)。
有更好的(可行的)想法吗?
【问题讨论】:
-
详细错误不会是
404 Not Found检查500.100 Internal Server Error映射到的内容。 -
我检查了 IIS 日志和应用程序日志,没有报告错误。 IIS 日志只显示请求的页面,没有其他内容。
-
您说过 “IIS 7 仍在向客户端发送完整详细的消息!” 所以请在网站的
Error Pages部分查看 IIS 7 中的500.100,500.100映射到哪里? -
500.100 错误必须来自将 httpErrors 标记放在 web.config 文件中。我不知道为什么会出现 500 错误 - 但这显然是由于 web.config 中的设置(IIS 日志或应用程序日志中没有错误 - 关于它可能是什么完全神秘,但它是保持的唯一方法404 暂时不会显示在浏览器中)
-
我在尝试访问站点的错误页面时发现了一个错误:此配置部分不能在此路径中使用。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或由具有 overrideMode="Deny" 或传统 allowOverride="false" 的位置标记显式设置。这是一个开始
标签: iis-7 asp-classic http-error