ASP.NET Core увеличивает количество ошибок на всех уровнях - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть приложение, которое состоит из интерфейсного веб-портала, который вызывает приложение API для серверной части.API вызывает некоторый уровень бизнес-сервисов (библиотеку классов), который, в свою очередь, подключается к базе данных.

У меня возникла проблема с эскалацией ошибок из нижней базы данных вплоть до веб-портала: db =>библиотека классов => api => веб.Я хотел бы получать конкретные сообщения об ошибках на веб-портале, независимо от того, где это происходит.

В настоящее время, если ошибка происходит на самом портале, нет проблем, портал отображает эту ошибку.Однако, если это уровень библиотеки классов, я получаю общие ошибки API от уровня API.

Я пытался использовать глобальное промежуточное программное обеспечение для обработки ошибок на уровне API, например:

 public async Task Invoke(HttpContext context)
    {
        context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;

        var ex = context.Features.Get<IExceptionHandlerFeature>()?.Error;
        if (ex == null) return;

        var error = new
        {
            message = ex.Message
        };

        context.Response.ContentType = "application/json";

        using (var writer = new StreamWriter(context.Response.Body))
        {
            new JsonSerializer().Serialize(writer, error);
            await writer.FlushAsync().ConfigureAwait(false);
        }
    }

Я зарегистрировал это так:

app.UseExceptionHandler(new ExceptionHandlerOptions
            {
                ExceptionHandler = new JsonExceptionMiddleware().Invoke
            });

Однако, это не фиксирует конкретную ошибку библиотеки классов.

Любой совет о том, как мне следует это исправить, очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...