asp.net mvc 2 customErrors iis 7.5 не работает
Мой сайт работает на asp.net mvc2, и я использую elmah для перехвата ошибок, а не attibute handleerror
если я перехожу на несуществующую страницу, например "http://localhost:8095/Home/City/1/mtl/ko", я получаю страницу ошибки IIS 404
в web.config я настроил свои ошибки
Я даже пытался установить код в global.asax application_error, и он не попадает туда
почему я получаю страницу ошибки IIS 404?
Теперь, когда я думаю об этом, я хотел бы зарегистрировать ошибки 404, где бы я мог перехватить их в asp.net mvc?
Спасибо
1 ответ
Я знаю, что это старый вопрос, но мне показалось, что я отвечаю:
В 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/ жерех-нетто-MVC-волшебно-ошибки каротаж с-ELMAH /