Мне нужно прочитать тело ответа в промежуточном программном обеспечении.
Не могу прочитать, потому что поток всегда не читается.
Какой-нибудь совет или решение?
Я использую следующий код:
public static IApplicationBuilder UseSendApplicationErrors(это приложение IApplicationBuilder) { app.Use(async (контекст, следующий) => { ждать следующего (контекст); пытаться { если (context.Response.StatusCode >= 400) { log = context.RequestServices.GetRequiredService(); IErrorService errorNotificator = context.RequestServices.GetRequiredService(); ErrorDto errorRegistry = новый ErrorDto() { Конечная точка = context.Request.Path.Value ?? Строка.Пусто, Метод = контекст.Запрос.Метод, QueryParams = context.Request.QueryString.Value ?? Строка.Пусто, Пользователь = контекст.Пользователь.Идентификация?.Имя ?? Строка.Пусто, }; если (context.Response.Body.CanRead) errorRegistry.Message = новый StreamReader(context.Response.Body).ReadToEnd(); дождитесь errorNotificator.SaveErrorAsync(errorRegistry); } } поймать (Исключение e) { журнал?.LogError(e, e.Message); } }); приложение возврата; } Статус Тела всегда следующий:

Промежуточное ПО размещается в начале канала:
