Middleware zum Festlegen der Antwort ContentType

In unserer auf ASP.NET Core basierenden Webanwendung möchten wir Folgendes: Bestimmte angeforderte Dateitypen sollten benutzerdefinierte ContentTypes als Antwort erhalten. Z.B..map sollte zu @ passapplication/json. In "vollem" ASP.NET 4.x und in Kombination mit IIS konnte web.config @ verwendet werd<staticContent>/<mimeMap> und ich möchte dieses Verhalten durch eine benutzerdefinierte ASP.NET Core-Middleware ersetzen.

So habe ich folgendes ausprobiert (der Kürze halber vereinfacht):

public async Task Invoke(HttpContext context)
{
    await nextMiddleware.Invoke(context);

    if (context.Response.StatusCode == (int)HttpStatusCode.OK)
    {
        if (context.Request.Path.Value.EndsWith(".map"))
        {
            context.Response.ContentType = "application/json";
        }
    }
}

Leider versucht @ zu setzcontext.Response.ContentType nach dem Aufrufen des Restes der Middleware-Kette ergibt sich folgende Ausnahme:

System.InvalidOperationException: "Headers are read-only, response has already started."

Wie kann ich eine Middleware erstellen, die diese Anforderung löst?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage