Промежуточное программное обеспечение для установки ответа ContentType
В нашем веб-приложении на основе ASP.NET Core мы хотим следующее: определенные запрошенные типы файлов должны получать в ответ пользовательские типы содержимого. Например..map
следует сопоставить сapplication/json
, В «полном» ASP.NET 4.x и в сочетании с IIS можно было использовать web.config<staticContent>/<mimeMap>
для этого и я хочу заменить это поведение на специальное промежуточное ПО ASP.NET Core.
Поэтому я попробовал следующее (упрощено для краткости):
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";
}
}
}
К сожалению, пытаясь установитьcontext.Response.ContentType
после вызова остальной части промежуточного программного обеспечения выдается следующее исключение:
System.InvalidOperationException: "Headers are read-only, response has already started."
Как я могу создать промежуточное программное обеспечение, которое решает это требование?