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 /

Другие вопросы по тегам