文件说
existingResponse="PassThrough"
Leaves the response untouched if an existing response exists.
07000
但“存在的回应存在”是什么意思?
例如。我想要我的customErrors处理程序来抑制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 – 只要有一个,只留下现有的回应。您的应用程序逻辑可能不返回任何内容。在这种情况下,使用这里定义的错误页面。
自动 – 使用此节点中定义的IIS错误页面,除非在asp.net中设置:
Response.TrySkipIisCustomErrors = true;
如果你这样做,你的代码的响应就被使用了。
替换 – 始终使用IIS错误页面,即使开发人员设置了TrySkipIisCustomErrors。
最后一个选项似乎是你想要的。
编辑:
考虑:
existingResponse="PassThrough"
现在尝试打开一个不存在的asp.net页面,你会看到:
即使资源不在,运行时提供了一个响应,它被传递到浏览器。
现在,尝试打开一个不存在的html页面。这一次我们仍然会获得404状态,但是仍然是一个空白的页面。
改为:
existingResponse="Auto"
缺少的asp.net页面仍然显示asp.net错误页面,但是对于缺少的html页面,我们现在可以获得IIS一个:
所以,总结一下:当看到缺少html和aspx页面不同的时候
existingResponse值,我们得到不同的错误页面:
.html-404 .aspx-404 .aspx-500 -------------------------------------------------- Auto IIS asp.net asp.net PassThrough - asp.net asp.net Replace IIS IIS IIS