Asp.net mvc mvc 5错误处理在第三个文件夹后不工作

Asp.net mvc mvc 5错误处理在第三个文件夹后不工作,asp.net-mvc,iis,error-handling,asp.net-mvc-5,Asp.net Mvc,Iis,Error Handling,Asp.net Mvc 5,我有一个MVC 5应用程序,在web.config中定义了自定义错误: <customErrors mode="RemoteOnly" redirectMode="ResponseRedirect" defaultRedirect="~/Errors/GeneralError"> <error statusCode="404" redirect="~/Errors/NotFound" /> <error statusCode="500" redirect="

我有一个MVC 5应用程序,在
web.config
中定义了自定义错误:

<customErrors mode="RemoteOnly" redirectMode="ResponseRedirect" defaultRedirect="~/Errors/GeneralError">
  <error statusCode="404" redirect="~/Errors/NotFound" />
  <error statusCode="500" redirect="~/Errors/ServerError" />
</customErrors>

(3) 与文章中使用
.aspx
文件的建议相反,我在MVC中使用了常规操作。例如,在控制器
Error
中,我使用了
NotFound
这样的操作:

[Route("Errors/NotFound")]
public ActionResult NotFound()
{
    Response.StatusCode = 404;
    return View("Error404");
}
现在有一些不同。404页面不会重定向到
Error/NotFound?aspxerrorpath=/errorURL/a/b/c
,它只会在原始链接中显示自定义错误页面而不重定向。如果仍然需要
aspxerrorpath
值,只需在如下操作中获取URL:

[Route("Errors/NotFound")]
public ActionResult NotFound()
{
    string aspxerrorpath = Request.RawUrl;
    // do whatever with aspxerrorpath 

    Response.StatusCode = 404;
    return View("Error404");
}
尽管如此,Elmah仍然没有记录3个文件夹以上的404错误。但对于一个新问题来说,这是一个不同的问题

读一下:

从上面的链接:

…如果有人导航到ASP.NET无法处理的URL,该怎么办? 例如,尝试导航到http://{your website}/a/b/c/d/e/f/g。这个 路由未映射到ASP.NET,因此出现应用程序错误 事件将不会被引发


如果您真的希望自定义错误页面变得强大,那么这是一个非常棒的教程。:)

您可以发布您配置的路由吗?
[Route("Errors/NotFound")]
public ActionResult NotFound()
{
    string aspxerrorpath = Request.RawUrl;
    // do whatever with aspxerrorpath 

    Response.StatusCode = 404;
    return View("Error404");
}