Я пытаюсь изменить заголовки ответов в каком -то промежуточном программном обеспечении после того, как оно закончилось в контроллере, но я получаю сообщение об ошибке: < /p>
System.InvalidOperationException: Headers are read-only, response has already started.
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders.ThrowHeadersReadOnlyException()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders.Microsoft.AspNetCore.Http.IHeaderDictionary.set_Item(String key, StringValues value)
at EditResponseMiddleware.InvokeAsync(HttpContext context) in
< /code>
Контроллер является контроллером по умолчанию и не включена здесь. < /p>
Это код, который вызывает исключение: < /p>
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.UseMiddleware();
app.UseAuthorization();
app.MapControllers();
app.Run();
public class EditResponseMiddleware
{
private readonly RequestDelegate _next;
public EditResponseMiddleware( RequestDelegate next )
{
_next = next;
}
public async Task InvokeAsync( HttpContext context )
{
await _next( context );
context.Response.Headers["MyHeader"] = "Test";
}
}
Есть ли обходной путь для этого, или мы не должны изменять какую -либо часть ответа на этой точке?
Я пытаюсь изменить заголовки ответов в каком -то промежуточном программном обеспечении после того, как оно закончилось в контроллере, но я получаю сообщение об ошибке: < /p> [code]System.InvalidOperationException: Headers are read-only, response has already started. at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders.ThrowHeadersReadOnlyException() at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpHeaders.Microsoft.AspNetCore.Http.IHeaderDictionary.set_Item(String key, StringValues value) at EditResponseMiddleware.InvokeAsync(HttpContext context) in < /code> Контроллер является контроллером по умолчанию и не включена здесь. < /p> Это код, который вызывает исключение: < /p> var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.UseMiddleware();
app.UseAuthorization();
app.MapControllers();
app.Run();
public class EditResponseMiddleware { private readonly RequestDelegate _next;
public EditResponseMiddleware( RequestDelegate next ) { _next = next; }
context.Response.Headers["MyHeader"] = "Test"; } } [/code] Есть ли обходной путь для этого, или мы не должны изменять какую -либо часть ответа на этой точке?