Points de terminaison de fichier de secours
L’attribut ConsumesAttribute permet aux actions du contrôleur de spécifier leurs types de contenu pris en charge. À compter de .NET 6, si un point de terminaison de fichier de secours a été configuré, il peut correspondre à des routes qui ont été rejetées, car la requête avait un type de contenu différent de celui spécifié dans le ConsumesAttribute d’une action. Le comportement de .NET 6 était un changement indésirable du comportement par rapport à .NET 5. Ce changement cassant résout partiellement le problème en faisant en sorte que les points de terminaison de fichier de secours correspondent seulement aux requêtes GET
et HEAD
.
Version introduite
ASP.NET Core 7.0 RC 2
Comportement précédent
Les points de terminaison configurés avec des requêtes StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile correspondaient à des requêtes effectuées avec n’importe quelle méthode de requête.
Nouveau comportement
Les points de terminaison configurés avec StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile correspondent seulement aux requêtes HEAD
et GET
.
Type de changement cassant
Ce changement peut affecter la compatibilité binaire.
Raison du changement
Ce changement rétablit partiellement un changement cassant plus important introduit accidentellement dans .NET 6. Comme il est très inhabituel de s’attendre à une réponse de fichier de secours lors de l’exécution d’une requête avec une méthode autre que HEAD
ou GET
, l’impact de ce changement cassant devrait être minime.
Action recommandée
Si vous voulez que les points de terminaison de fichier de secours correspondent aux requêtes avec des méthodes autres que HEAD ou GET, vous pouvez spécifier des méthodes de requête HTTP supplémentaires en utilisant WithMetadata()
. Par exemple :
endpoints.MapFallbackToFile("index.html")
.WithMetadata(new HttpMethodMetadata(new[] { /* List supported methods here */ }));
API affectées
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour