微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决由于我在Web.config和Global.asax中的设置,两次调用了NotFound方法

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

    <httpErrors errorMode="Custom" existingResponse="Replace">
      <clear/>
      <error statusCode="400" responseMode="ExecuteURL" path="/Error/BadRequest" />
      <error statusCode="403" responseMode="ExecuteURL" path="/Error/Forbidden" />
      <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFoundFromWebConfig" />
      <error statusCode="500" responseMode="ExecuteURL" path="/Error/Index" />
    </httpErrors>

我还在Application_Error方法的Global.asax.cs文件中处理错误

     Response.TrySkipIisCustomErrors = true;
     HttpContext.Current?.Response.Redirect("~/Error/NotFound",true);

现在,当我按下mysite / contactus / blah之类的控制器时,我看到NotFound方法调用了两次。

我尝试禁用这两个之一,但是这样做时出现了不同的问题。例如,如果我删除配置文件中的那个,则当404发生时,我得到了难看的黑色和红色页面。如果删除第二个页面,则会重定向到空白页面

有人可以帮忙吗?谢谢。

解决方法

根据上面的对话,我从Global.asax中删除了错误处理,并且我的routeconfig文件中还包含了一条捕获所有路由,由于我已经通过条件限制了路由,因此我删除了该路由。这解决了这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。