Это приближается к использованию ELMaH с запахом MVC?

Я осматривал для некоторых подходов к использованию ELMaH с ASP.NET MVC так, чтобы я мог использовать пользовательскую ошибочную страницу для всех исключений включая 404 с.

Нет никакой нехватки вопросы выяснение, как получить/Shared/Error.aspx, работающий правильно в ASP.NET MVC - или с или без ELMaH. У меня не было проблемы с той задачей, но я чувствую, как будто мое решение использования пользовательских 404 страниц вместе с ELMaH было слишком просто, и я не могу встряхнуть чувство, что должно быть больше к нему.

После включения customErrors в сети. Конфигурация, я создал новое Действие в своем HomeController:

public ActionResult PageNotFound()
{
    return null;
}

Оттуда я добавил новый метод в своем файле Global.asax для использования в своих интересах возможностей фильтрации журнала ELMaH и, после разрешения исключению быть зарегистрированным, перенаправив ответ назад на вышеупомянутое PageNotFound ActionResult:

    public void errorLog_Filtering(object sender, ExceptionFilterEventArgs e)
    {
        if (e.Exception.GetType().Equals(typeof(HttpException)))
        {
            HttpException ex = (HttpException)e.Exception;
            if (ex.GetHttpCode() == 404)
                Response.Redirect("/Home/PageNotFound");
        }
    }

Я пропускаю что-то, что идет с MVC по умолчанию (потому что я все еще нахожу свой путь к большому количеству вещей относительно MVC) или сверхдумаю проблема, где простое решение существует? Цените любой вход.

7
задан Community 23 May 2017 в 11:55
поделиться

1 ответ

Я уверен, что ASP.NET справится с этой задачей за вас, вам не обязательно вызывать что-то для перенаправления на действие 404 внутри вашего global.asax. Смотрите пример ниже.

<configuration>
    <system.web>
        <customErrors mode="On">
            <error statusCode="404" redirect="/servererrors/404.aspx" />
        </customErrors>
    </system.web>
</configuration>

http://www.xefteri.com/articles/show.cfm?id=11

3
ответ дан 7 December 2019 в 16:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: