asp.net mvc 2 customErrors iis 7.5 не работает - PullRequest
3 голосов
/ 19 декабря 2010

Мой сайт работает на asp.net mvc2, и я использую elmah для перехвата ошибок, а не handletiror attibute

если я захожу на несуществующую страницу, например «http://localhost:8095/Home/City/1/mtl/ko' Я получаю сообщение об ошибке IIS 404

в web.config я настроил свои ошибки

Я даже пытался установить код в global.asax application_error, и он не попадает туда

почему я получаю страницу ошибки IIS 404?

Теперь, когда я думаю об этом, я хотел бы записать 404 ошибки, где бы я мог их перехватить в asp.net mvc?

Спасибо

1 Ответ

0 голосов
/ 29 января 2013

Я знаю, что это старый вопрос, но мне показалось, что я отвечаю:

У Элмы есть фильтрация, которую вы можете применить: 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/

...