如何解决由于我在Web.config和Global.asax中的设置,两次调用了NotFound方法
<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 举报,一经查实,本站将立刻删除。