Я пытаюсь изменить заголовки ответов в каком -то промежуточном программном обеспечении после того, как оно закончилось в контроллере, но я получаю сообщение об ошибке: < /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] Есть ли обходной путь для этого, или мы не должны изменять какую -либо часть ответа на этой точке?
как правильно комбинировать функции обработки исключений RequestValidationError
@app.Exception_handler(RequestValidationError) асинхронная защита validation_Exception_handler (запрос, exc): ответ = подготовить_ответ({}, g_ERROR__INCORRECT_PARAMS)...
как правильно комбинировать функции обработки исключений RequestValidationError
@app.Exception_handler(RequestValidationError) асинхронная защита validation_Exception_handler (запрос, exc): ответ = подготовить_ответ({}, g_ERROR__INCORRECT_PARAMS)...
The data is not saved within a DI Scoped Service when using Middleware after Identity login. In this example, the data is always false even though it has been set to true (confirmed in the debugger).
The data is not saved within a DI Scoped Service when using Middleware after Identity login. In this example, the data is always false even though it has been set to true (confirmed in the debugger).