文件上说

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

Asp.net相关问答推荐

我可以强制刷新我的样式表文件吗?

什么是 SNIReadSyncOverAsync,为什么需要很长时间才能完成?

在 Web.Config 的 Location Path 元素中指定多个目录

ASP.NET - 在屏幕底部显示应用程序构建日期/信息

如何在 C# 代码中获取当前项目名称?

在 DataTextField 中组合两个字段.这可能吗?

如何异步渲染局部视图

使用实体框架从存储过程中获取数据

无法使用单例Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor中的范围服务MyDbContext

与将 Web 应用程序保存在一个默认应用程序池中相比,拥有专用应用程序池的优缺点

可空日期时间转换

获取页面上特定类型的所有 Web 控件

带有 ASP.NET WebMethod 的 Jquery AJAX 返回整个页面

IIS Express - 增加内存限制

应该如何使用 RedirectToRoute?

脚本管理器控制实际上是做什么的?

Docker 中的 ASPNETCORE_ENVIRONMENT

服务器标签格式不正确错误

字体真棒里面asp按钮

Session.Clear() 与 Session.RemoveAll()