C# 由于我在Web.config和Global.asax中的设置,NotFound方法被调用了两次

C# 由于我在Web.config和Global.asax中的设置,NotFound方法被调用了两次,c#,asp.net-mvc,model-view-controller,asp.net-mvc-5,C#,Asp.net Mvc,Model View Controller,Asp.net Mvc 5,我有一个MVC5应用程序。在配置文件中,我设置了以下内容: 我还在Application\u Error方法的Global.asax.cs文件中处理错误: Response.tryskipiiscustomerors=true; HttpContext.Current?.Response.Redirect(“~/Error/NotFound”,true); 现在,当我点击一个控制器例如mysite/contactus/blah时,我看到NotFound方法被调用了两次 我曾尝试禁用这两个选

我有一个MVC5应用程序。在配置文件中,我设置了以下内容:


我还在Application\u Error方法的Global.asax.cs文件中处理错误:

Response.tryskipiiscustomerors=true;
HttpContext.Current?.Response.Redirect(“~/Error/NotFound”,true);
现在,当我点击一个控制器例如mysite/contactus/blah时,我看到NotFound方法被调用了两次

我曾尝试禁用这两个选项中的一个,但当我这样做时会遇到不同的问题。例如,如果我删除配置文件中的一个,当404发生时,我会得到一个丑陋的黑色和红色页面。如果我删除第二个,我会被重定向到一个空白页


有人能帮忙吗?谢谢。

根据上面的对话,我从Global.asax中删除了错误处理,并且我的routeconfig文件中也有一个catch all路由,我删除了该路由,因为我已经通过一个条件限制了我的路由。这解决了问题。

如果您的项目是100%ASP.NET MVC(没有任何
.aspx
文件),那么您不需要实现
应用程序错误
。此外,请检查您是否有任何IIS URL重写规则(
)正在触发辅助请求。您是否已验证应用程序未向错误页发送任何3xx重定向?(即
GET/foo->HTTP 301/bar->GET/bar->HTTP 404
)@Dai感谢您的回复。是的,我决定从Global.asax中删除错误处理,因此不清除服务器和上下文错误。在我的routeconfig文件中,我也有一个全包路由,我删除了它,因为我已经通过一个条件限制了我的路由。所以我相信现在应该是好的。再次感谢你。