asp.net-mvc-3 - 未找到 View 'Error' 或其主视图

标签 asp.net-mvc-3 error-handling elmah

我花了很多时间试图找出解决方法,但没有成功,所以我想看看这里是否有人有想法。

我正在使用Elmah in my ASP.NET MVC3 application 。我使用的代码与上一个链接中接受的答案完全相同。

我的 Global.asax 中也有此代码,用于显示具有正确 HTTP 响应的错误页面:

    /// <summary>
    /// The customErrors functionality provided by ASP.NET results in HTTP 302 redirects occurring which doesn't accurately reflect what the real HTTP code of the response was.
    /// This method can be used to handle specific HTTP codes without an intermediate redirect.
    /// </summary>
    protected void Application_Error() {
        var exception = Server.GetLastError();
        var httpException = exception as HttpException;
        Response.Clear();
        Server.ClearError();
        var routeData = new RouteData();
        routeData.Values["controller"] = "Error";
        routeData.Values["action"] = "Error500";
        Response.StatusCode = 500;

        if (httpException != null) {
            Response.StatusCode = httpException.GetHttpCode();
            Response.TrySkipIisCustomErrors = true;
            switch (Response.StatusCode) {
                case 403:
                    routeData.Values["action"] = "Error403";
                    break;
                case 404:
                    routeData.Values["action"] = "Error404";
                    routeData.Values["message"] = httpException.Message;
                    break;
                case 500:
                    routeData.Values["action"] = "Error500";
                    break;
            }
        }

        IController errorsController = new ErrorController();
        var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
        errorsController.Execute(rc);
    }

当我不在我的(本地)开发计算机上时,就会出现问题(这最初让我认为它与 customErrors 相关)。当抛出异常时,Elmah 会处理错误并正确记录它。我最终也到达了正确的错误页面。但是,在到达正确的错误页面之前,我可以看到另一个中间异常被记录:

The view 'Error' or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/Articles/Error.aspx ~/Views/Articles/Error.ascx ~/Views/Shared/Error.aspx ~/Views/Shared/Error.ascx ~/Views/Articles/Error.cshtml ~/Views/Articles/Error.vbhtml ~/Views/Shared/Error.cshtml ~/Views/Shared/Error.vbhtml

ASP.NET 正在尝试加载默认错误页面,即使我正在尝试处理它。有谁知道如何防止这种情况发生?

最佳答案

请勿在派生自 HandleErrorAttribute 的自定义错误处理程序中调用 base.OnException(context); 方法。您不再需要它,因为您已在 Application_Error 中实现了自定义错误处理。

关于asp.net-mvc-3 - 未找到 View 'Error' 或其主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199345/

相关文章:

asp.net - 如何在 ASP.NET MVC 应用程序中最好地实现和构造 View ,以便在页面加载时获得更好的缓存?

c# - TryUpdateModel 仅在更新子对象的单元测试中失败

c# - 如何在我的数据库中创建对用户系统中 ASP.NET 构建的用户的引用?

c# - C# 中与 aspnet_users 的代码优先关系

asp.net - 更新面板异常处理

error-handling - 注册新的PHP处理程序clipath

asp.net-mvc - 在 MVC 中使用 ELMAH 时我需要 Try Catch 吗?为什么?

c# - 使用 Gmail 进行 ElMAH 错误记录?

asp.net-mvc - 在不创建角色/用户身份验证的情况下查看 elmah 日志

asp.net - ELMAH 登录 SQL Server