existingResponse="PassThrough" 在 IIS 中是什么意思?
What does existingResponse="PassThrough" mean in IIS?
文档说
existingResponse="PassThrough"
Leaves the response untouched if an existing response exists.
http://www.iis.net/configreference/system.webserver/httperrors#005
但是 "existing response exists" 是什么意思?
例如我希望我的 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 - 保留现有响应,只要存在一个即可。您的应用程序逻辑可能没有 return 任何东西。在这种情况下,将使用此处定义的错误页面。
Auto - 使用此节点中定义的 IIS 错误页面,除非在 asp.net 中您设置了:
Response.TrySkipIisCustomErrors = true;
如果您这样做了,就会使用您的代码的响应。
Replace - 始终使用 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
文档说
existingResponse="PassThrough"
Leaves the response untouched if an existing response exists. http://www.iis.net/configreference/system.webserver/httperrors#005
但是 "existing response exists" 是什么意思?
例如我希望我的 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 - 保留现有响应,只要存在一个即可。您的应用程序逻辑可能没有 return 任何东西。在这种情况下,将使用此处定义的错误页面。
Auto - 使用此节点中定义的 IIS 错误页面,除非在 asp.net 中您设置了:
Response.TrySkipIisCustomErrors = true;
如果您这样做了,就会使用您的代码的响应。
Replace - 始终使用 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