文件上说
existingResponse="PassThrough"
如果存在现有响应,则保持响应不变. http://www.iis.net/configreference/system.webserver/httperrors#005个
但"现有react 存在"是什么意思?
例如,我希望我的customErrors
处理程序 suppress ASP.NET响应,这样IIS就会认为该响应不存在.我该怎么做呢?
文件上说
existingResponse="PassThrough"
如果存在现有响应,则保持响应不变. http://www.iis.net/configreference/system.webserver/httperrors#005个
但"现有react 存在"是什么意思?
例如,我希望我的customErrors
处理程序 suppress ASP.NET响应,这样IIS就会认为该响应不存在.我该怎么做呢?
模式中有三个可能的值:
<attribute name="existingResponse" type="enum" defaultValue="Auto">
<enum name="Auto" value="0" />
<enum name="Replace" value="1" />
<enum name="PassThrough" value="2" />
</attribute>
大致上,我是这样理解的:
PassThrough-保持现有响应不变,只要有响应即可.您的应用程序逻辑可能不返回任何内容.在这种情况下,将使用此处定义的错误页.
Auto-使用此 node 中定义的IIS错误页,除非在ASP.NET中设置:
Response.TrySkipIisCustomErrors = true;
如果您已经这样做了,那么将使用来自代码的响应.
Replace-始终使用IIS错误页,即使开发人员已设置为TrySkipIisCustomErrors
.
最后一个 Select 似乎是你想要的.
Edit:个
请考虑:
existingResponse="PassThrough"
现在try 打开一个不存在的ASP.NET页面,您将看到:
即使资源不在那里,运行时也会提供响应,并将其传递给浏览器.
现在,try 打开一个不存在的html页面.这一次我们仍然得到404状态,但是是一个空页.
更改为:
existingResponse="Auto"
失踪的asp.net页面仍然显示asp.net错误页面,但对于缺少的html页面,我们现在得到了IIS页面:
所以,总结一下:当看到缺失的html和aspx页面时
.html-404 .aspx-404 .aspx-500
--------------------------------------------------
Auto IIS asp.net asp.net
PassThrough - asp.net asp.net
Replace IIS IIS IIS