Замените Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware и используйте обработку исключений - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время наша обработка ошибок ASP. NET Core 3.1 web api отправляет все в наш контроллер ошибок, используя app.UseExceptionHandling('/error'). Этот контроллер регистрирует ошибку и отправляет ответ об ошибке, ожидаемый нашими клиентами. К сожалению, наши журналы содержат каждую ошибку дважды, потому что Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware регистрирует ошибку перед нашим контроллером ошибок. Как мы можем полностью удалить / заменить Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware таким образом, чтобы мы (а) регистрировали ошибку только один раз и (б) полностью заменяли ответ нашим контентом?

Мы решили использовать app.UseExceptionHandling('/error') вместо app.Use<CustomMiddlewareErrorHandler>() потому что изменение содержимого в промежуточном программном обеспечении всегда приводило к ошибке «ответ уже запущен», которую мы никогда не видим при использовании контроллера ошибок. Я нашел учебники, которые советуют проверять, начался ли ответ, но мы всегда хотим заменить его. Я полагаю, нам нужно отправить ответ sh или что-то в этом роде.

Может ли кто-нибудь указать мне на практический пример, который (а) предотвращает двойную регистрацию и (б) позволяет полностью заменить ответ после ошибка?

...