voglio aggiungere un middleware tempo di elaborazione alla mia ASP.NET Nucleo WebAPI come questoaggiungere intestazioni di risposta ad ASP.NET core Middleware
public class ProcessingTimeMiddleware
{
private readonly RequestDelegate _next;
public ProcessingTimeMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
var watch = new Stopwatch();
watch.Start();
await _next(context);
context.Response.Headers.Add("X-Processing-Time-Milliseconds", new[] { watch.ElapsedMilliseconds.ToString() });
}
}
Ma facendo questo genera un'eccezione dicendo
System.InvalidOperationException: Headers are readonly, reponse has already started.
Come posso aggiungere intestazioni alla risposta?
vorrei aggiungere anche che attendono '_next (contesto)' dovrebbe essere l'ultima dichiarazione (dopo 'context.Response.Headers.Add '). Più semanticamente corretto. –
Esiste un equivalente di .NET 4 o ci si può aggirare per questo? Ancora alcuni clienti di Server 2003 :( – apc
C'è un motivo per cui hai utilizzato il sovraccarico di stato su OnStarting? –