我使用 Elmah 1.2 作为我的 asp.net mvc 4 应用程序的日志框架。
在 web.config 文件中,我将 customErrors 模式设置为 on。
<customErrors mode="On" defaultRedirect="/Error">
<error statusCode="404" redirect="/Error/NotFound" />
</customErrors>
我还创建了一个自定义 HandleErrorAttribute,从这个链接复制了代码。
http://joel.net/logging-errors-with-elmah-in-asp.net-mvc-3--part-4--handleerrorattribute
在我的 Home 控制器中,我只是抛出一个异常来测试日志框架。
public ActionResult About()
{
throw new Exception("this is a buggggggggggggg");
ViewBag.Message = "Your app description page.";
return View();
}
“这是一个buggggggggggggg”记录在数据库中,很好,它有效。然后还记录了另一个错误,我没想到会发生这种情况。
未找到视图“错误”或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:~/Views/Home/Error.aspx ~/Views/Home/Error.ascx ~/Views/Shared/Error.aspx ~/Views/Shared/Error.ascx ~/Views/Home/Error。 cshtml ~/Views/Home/Error.vbhtml ~/Views/Shared/Error.cshtml ~/Views/Shared/Error.vbhtml
更新:
按照蒂姆的建议,那么它会导致另一个问题。
如果我在共享文件夹中创建一个 Error.cshtml。当发生未处理的异常时,它将显示此 Error.cshtml 文件,而不是“/Error”页面。我启用了 customErrors。它们都应该被重定向到“/Error”页面。