【发布时间】:2013-04-13 02:53:28
【问题描述】:
我想我在 IIS 错误页面系统中发现了一个错误。
注意: - 我没有使用 .NET 错误页面 - 这设置为 Off
问题:
当为 500.100(经典 ASP)响应代码设置自定义错误页面时,即使 errorMode 设置为 Detailed,IIS 也会始终发送自定义错误页面。让 IIS 发送错误的唯一方法是显式删除 web.config 中的条目。
EG:
<remove statusCode="500" subStatusCode="100"/>
or
<clear/>
注意 - 以下内容不有效(适用于所有其他代码):
<remove statusCode="500" subStatusCode="-1"/>
我的场景:
- IIS 8(我不知道该问题是否存在于旧版本的 IIS 中)
- 运行 .NET 2.0 的网站 - 经典管道
- 错误页面上的功能委派设置为只读
- IIS 中的错误页面设置如下(由于上述功能委托,这些条目不在 web.config 中):
- 404 - /path/to/404.htm - ExecuteURL
- 500 - /path/to/500.htm - ExecuteURL
- 500.100 - /path/to/500.htm - ExecuteUrl
关闭自定义错误:
为了关闭自定义错误,我需要做的就是:
- 加载 IIS
- 加载
Error Pages - 点击
Edit Feature Settings - 选择
Detailed Errors
这适用于所有代码除了经典 ASP 500 错误(状态代码 500.100)。
获得正确的经典 ASP 错误的唯一方法是设置以下内容(这需要我将功能委托更改为读/写):
<system.webServer>
<httpErrors errorMode="Detailed">
<clear/>
OR
<remove statusCode="500" subStatusCode="100"/>
</httpErrors>
</system.webServer>
总结
似乎如果设置了 500.100 自定义错误页面,那么将 Detailed Errors 设置为 true 不适用于 Classic ASP 500 错误。
这是一个错误还是我遗漏了什么?
【问题讨论】:
-
technet.microsoft.com/en-us/library/cc753103%28v=ws.10%29.aspx 您不能使用自定义 500 错误页面。
标签: iis asp-classic custom-errors iis-8