Я последовал ответу Барди в Как можно безопасно перехватить поток ответов в пользовательском промежуточном программном обеспечении Owin , чтобы получить полное тело ответа в промежуточном программном обеспечении. Когда промежуточное ПО успешно получает тело ответа, ответ, полученный вызывающим клиентом, прерывается на произвольную длину. Это почти говорит о том, что await buffer.CopyToAsync(stream);
не полностью очищает ответ. Я пробовал несколько способов решить эту проблему, но ни один из них не работал вообще.
- используйте
await buffer.CopyToAsync(stream, bufferSize);
для очистки потока. Никакого эффекта.
- Добавить
context.Response.ContentLength = bufferSize;
Никакого эффекта.
- Добавить
await context.Response.Body.FlushAsync();
или await stream.FlushAsync();
. Я получил пустой ответ.
Кто-нибудь видел эту проблему?