我正在尝试在asp mvc 5中制作工作自定义错误页面,但是出于某些奇怪的原因,我现在正在测试我的页面,从elmah我正在记录两个错误(我正在测试的真正错误和与错误页面相关的错误实测值:
视图'错误'或者找不到它的主人,或者没有视图引擎支持搜索到的位置。搜索了以下位置: 〜/查看/ HotTowel / Error.aspx 〜/查看/ HotTowel / Error.ascx 〜/查看/共享/ Error.aspx 〜/查看/共享/ Error.ascx 〜/查看/ HotTowel / Error.cshtml 〜/查看/ HotTowel / Error.vbhtml 〜/查看/共享/ Error.cshtml 〜/查看/共享/ Error.vbhtml
我正在研究这个网址http://doingthedishes.com/2011/09/10/custom-errors-mvc-3-elmah.html,其中作者有同样的问题,但是使用asp.net mvc 3.在阅读之后,我尝试删除对HandleErrorAttribute的调用:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//filters.Add(new HandleErrorAttribute());
}
}
但问题仍然存在:我可以看到我的自定义页面,但asp.net mvc抛出两个例外。 有什么帮助吗?
解决方案是重写一个派生自HandleErrorAttribute的类吗? 喜欢这篇文章:keep getting The view "Error" not found when using Elmah and asp.net mvc 4?
答案 0 :(得分:8)
您可以从ELMAH.MVC 2.0.2 is out执行以下操作:
将disableHandleErrorFilter
设为true
:
<add key="elmah.mvc.disableHandleErrorFilter" value="true" />
从filters.Add(new HandleErrorAttribute());
课程中删除FilterConfig
:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// filters.Add(new HandleErrorAttribute()); // <-- comment out
}
}
答案 1 :(得分:1)
这里有一个可能的解决方案。我通常会覆盖基本控制器类中的itemid
方法。 OnException
检查web.config中的filterContext.HttpContext.IsCustomErrorEnabled
。 <customErrors>
变量派生自web.config中的设置。
showVerboseErrors