我的网站在asp.net mvc2上运行,我正在使用elmah进行错误捕获,而不是处理错误的文件
如果我浏览到非现有页面,如 的 'http://本地主机:8095 /家庭/城市/ 1 / MTL / KO' 我收到IIS错误404页
在web.config中我配置了自定义错误
我甚至尝试在global.asax application_error中设置代码并且它没有被困在那里
为什么我会收到IIS 404错误页面?
现在我考虑一下,我想记录404错误,我会在asp.net mvc中捕获这些错误吗?
由于
答案 0 :(得分:0)
我知道这是一个老问题,但我想回答:
Elmah已过滤您可以申请: http://code.google.com/p/elmah/wiki/ErrorFiltering
启用错误过滤后,您需要修改Gloabal.asax.cs以过滤错误:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("elmah.axd"); //Add this line to the register routes.
}
//ELMAH Filtering
protected void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
FilterError404(e);
}
protected void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{
FilterError404(e);
}
//Dimiss 404 errors for ELMAH
private void FilterError404(ExceptionFilterEventArgs e)
{
if (e.Exception.GetBaseException() is HttpException)
{
HttpException ex = (HttpException)e.Exception.GetBaseException();
if (ex.GetHttpCode() == 404)
{
e.Dismiss();
}
}
}
但坦率地说,我喜欢记录包括404错误在内的所有内容。这使我可以更好地了解用户如何进入或发现新功能,以便在需要时提供支持。
其他资源: http://joel.net/logging-errors-with-elmah-in-asp.net-mvc-3--part-3--filtering http://ivanz.com/2011/05/08/asp-net-mvc-magical-error-logging-with-elmah/