ASP.net 核心未捕获 404.20 异常

404.20 Exception not being caught by ASP.net Core

我创建了一个新的 ASP.net 5 MVC6 项目并添加了以下内容:

app.UseStatusCodePages();

在我的配置方法中。如果我 运行 应用程序,请打开我的网络浏览器并导航至以下 URL:

http://localhost:34741/invalidroute 

我看到一个:状态码:404;未找到错误。这是预料之中的,但是如果我使路线更复杂,例如:

 http://localhost:34741/this/is/a/complicated/route/this/is/a/complicated/route/this/is/a/complicated/route/this/is/a/complicated/route/this/is/a/complicated/route/this/is/a/complicated/route/this/is/a/complicated/route/

我看到了 HTTP 错误 404.20 - 未找到 IIS 详细错误页面。为什么 asp 不再处理这个问题?

我试过在我的 web.config 文件中使用 httpErrors,我也试过在 IIS 中设置默认文档,但我无法使自定义错误页面正常工作:(

https://support.microsoft.com/en-us/kb/943891

404.20 来自 IIS。有一个设置 "maxurlSegments" 来控制允许的段数,您可以在

中找到

https://www.iis.net/configreference/system.applicationhost/sites/site/limits

修改 IIS 设置,错误应该消失。

需要在 IIS 中更改 maxurlSegments 设置,好的是可以针对单个站点或服务器级别更改设置