ConsumesAttribute属性を使用すると、コントローラー アクションでサポートされているコンテンツ タイプを指定できます。 .NET 6 以降では、フォールバック ファイル エンドポイントが構成されている場合、要求のコンテンツ タイプがアクションの ConsumesAttributeで指定されたものとは異なるため、破棄されたルートと一致する可能性があります。 .NET 6 の動作は、.NET 5 の動作からの望ましくない変更でした。 この破壊的変更は、フォールバック ファイル エンドポイントが GET
要求と HEAD
要求にのみ一致するようにすることで、問題を部分的に解決します。
導入されたバージョン
ASP.NET Core 7.0 RC 2
以前の動作
StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile が構成されたエンドポイントでは、どのメソッドで作成した要求とも一致していました。
新しい動作
StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFileで構成されたエンドポイントは、HEAD
とGET
の要求にのみ一致します。
破壊的変更の種類
この変更は 、バイナリの互換性に影響する可能性があります。
変更の理由
この変更により、.NET 6 で誤って導入された大きな破壊的変更が部分的に元に戻されます。
HEAD
またはGET
以外の方法で要求を行うときにフォールバック ファイルの応答を期待することは非常に珍しいので、この破壊的変更の影響は最小限にする必要があります。
推奨されるアクション
フォールバック ファイル エンドポイントで要求を HEAD または GET 以外のメソッドと照合する場合は、 WithMetadata()
を使用して追加の HTTP 要求メソッドを指定できます。 例えば次が挙げられます。
endpoints.MapFallbackToFile("index.html")
.WithMetadata(new HttpMethodMetadata(new[] { /* List supported methods here */ }));
影響を受ける API
.NET