我想我在IIS错误页面系统中发现了一个错误。
注意: - 我没有使用.NET错误页面 - 这被设置为关闭
问题:
当为500.100(经典ASP)响应代码设置自定义错误页面时,即使 errorMode 设置为详细,IIS也始终会发送自定义错误页面。让IIS发送错误的唯一方法是明确删除web.config中的条目。
EG:
<remove statusCode="500" subStatusCode="100"/>
or
<clear/>
注意 - 以下不工作(适用于所有其他代码):
<remove statusCode="500" subStatusCode="-1"/>
我的情景:
关闭自定义错误:
为了关闭自定义错误,我需要做的就是:
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自定义错误页面,然后将详细错误设置为true,不会对Classic ASP 500错误起作用。
这是一个错误还是我错过了什么?
答案 0 :(得分:1)
它是一个已知的错误,我们也可以通过删除500错误来解决它,而是链接到我们的自定义页面,从“当你可以找到其他任何东西发送它们”的部分配置时。
(我无法拒绝其所谓的)
答案 1 :(得分:0)
尝试以这种方式修改您的web.config(它适用于IIS 7.5)。
替换
行<httpErrors errorMode="Detailed">
与
<httpErrors existingResponse="PassThrough" errorMode="Detailed">
这是因为默认情况下,IIS7拦截HTTP状态代码,例如由管道上的应用程序生成的4xx和5xx。