如何替换“;错误处理您的请求时出错&”;
本文关键字:请求 出错 处理 错误 何替换 替换 | 更新日期: 2023-09-27 18:25:20
在我的Web.config中。
<customErrors mode="On" defaultRedirect="~/Errors/Unknown">
<error statusCode="403" redirect="~/Errors/Forbidden"></error>
<error statusCode="404" redirect="~/Errors/NotFound"></error>
</customErrors>
如果我试图打开一个不存在的页面,效果会很好。(它重定向到我的自定义错误页面:ErrorsController.NotFound)。当发生未处理的异常时(在本例中为LINQ Signle(…))。它不会转到~/Errors/Unknown,但显示默认消息:
错误。处理您的请求时出错。
如何用我的ErrorsController替换它。未知?
多亏了这个问题,我明白了如何做到这一点。下面的代码与已接受的答案几乎相同。修改也不处理HttpException。
使其发挥作用的步骤:
- web.config中的customErrors元素现在将被忽略
-
将以下方法粘贴到您的Global.axax.
protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); var httpException = exception as HttpException; if (httpException != null) { string action; switch (httpException.GetHttpCode()) { case 404: // page not found action = "NotFound"; break; case 403: // forbidden action = "Forbidden"; break; case 500: // server error action = "HttpError500"; break; default: action = "Unknown"; break; } // clear error on server Server.ClearError(); Response.Redirect(String.Format("~/Errors/{0}", action)); }else { // this is my modification, which handles any type of an exception. Response.Redirect(String.Format("~/Errors/Unknown")); } }