Использование «UseDeveloperExceptionPage» вместе с «UseExceptionHandler» - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу показать страницу исключений разработчика, когда есть необработанное исключение, но я также хочу добавить в него протоколирование.Но когда я использую app.UseDeveloperExceptionPage вместе с app.UseExceptionHandler, работает только последний, который я добавил.Как я могу заставить их работать вместе?

1 Ответ

0 голосов
/ 22 февраля 2019

ExceptionHandler по умолчанию не работает с DeveloperExceptionPage, потому что он перехватывает исключение.
Что вы можете сделать, это добавить ExceptionFilter, зарегистрировать исключение и позволить ему быть пойманным DeveloperExceptionPage:

public class ExceptionFilter : IExceptionFilter
{
    public void OnException(ExceptionContext context)
    {
        Log.Error(context.Exception, $"{context.ActionDescriptor.DisplayName}");

        // the important bit here
        context.ExceptionHandled = false;
    }
}

А затем добавьте его в фильтры:

services.AddMvc(setup => { /* ... */ setup.Filters.Add<ExceptionFilter>(); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...