Puntos de conexión de archivos de reserva

El atributo ConsumesAttribute permite que las acciones del controlador especifiquen los tipos de contenido que admiten. A partir de .NET 6, si se configuró un punto de conexión de archivos de reserva, podría coincidir con las rutas que se descartaron, porque la solicitud tenía un tipo de contenido diferente al especificado en el ConsumesAttribute de la acción. .NET 6 tenía un cambio no deseado del comportamiento de .NET 5. Este cambio importante soluciona parcialmente el problema haciendo que los puntos de conexión de archivos de reserva solo coincidan con las solicitudes GET y HEAD.

Versión introducida

ASP.NET Core 7.0 RC 2

Comportamiento anterior

Los puntos de conexión configurados con StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile coincidían con las solicitudes realizadas con cualquier método.

Comportamiento nuevo

Los puntos de conexión configurados con StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile solo coinciden con las solicitudes HEAD y GET.

Tipo de cambio importante

Este cambio puede afectar a la compatibilidad binaria.

Motivo del cambio

Este cambio revierte parcialmente un cambio importante mayor introducido por error en .NET 6. Dado que es muy inusual esperar una respuesta de archivos de reserva al realizar una solicitud con un método distinto de HEAD o GET, el impacto de este cambio importante debe ser mínimo.

Si desea que los puntos de conexión de archivos de reserva coincidan con solicitudes por métodos distintos de HEAD o GET, puede especificar otros métodos de solicitud HTTP mediante WithMetadata(). Por ejemplo:

endpoints.MapFallbackToFile("index.html")
    .WithMetadata(new HttpMethodMetadata(new[] { /* List supported methods here */ }));

API afectadas