В настоящее время наша обработка ошибок 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 или что-то в этом роде.
Может ли кто-нибудь указать мне на практический пример, который (а) предотвращает двойную регистрацию и (б) позволяет полностью заменить ответ после ошибка?