Мне нужно сбросить Response.Body после записи некоторых данных в Middleware по некоторым причинам.
Что я пробовал в методе Middleware Invoke:
if (!context.Response.HasStarted)
{
// Not committed / data was not sent to client yet
// Reset Response
context.Response.StatusCode = StatusCodes.Status200OK;
context.Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = null;
if (context.Response.Body.CanSeek)
{
context.Response.Body.SetLength(0);
}
// Reset headers
responseWrapper.ResetAddedHeaders()
}
Проблема заключается в context.Response.HasStarted всегда TRUE, даже если в Response.Body from Controller было записано несколько байтов.
Я думал, что в теле ответа есть внутренний буфер, поэтому context.Response.HasStarted должен иметь значение FALSE, если внутренний буфер не был заполнен.
Есть идеи? Спасибо!