次の方法で共有


フォールバック ファイル エンドポイント

ConsumesAttribute属性を使用すると、コントローラー アクションでサポートされているコンテンツ タイプを指定できます。 .NET 6 以降では、フォールバック ファイル エンドポイントが構成されている場合、要求のコンテンツ タイプがアクションの ConsumesAttributeで指定されたものとは異なるため、破棄されたルートと一致する可能性があります。 .NET 6 の動作は、.NET 5 の動作からの望ましくない変更でした。 この破壊的変更は、フォールバック ファイル エンドポイントが GET 要求と HEAD 要求にのみ一致するようにすることで、問題を部分的に解決します。

導入されたバージョン

ASP.NET Core 7.0 RC 2

以前の動作

StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile が構成されたエンドポイントでは、どのメソッドで作成した要求とも一致していました。

新しい動作

StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFileで構成されたエンドポイントは、HEADGETの要求にのみ一致します。

破壊的変更の種類

この変更は 、バイナリの互換性に影響する可能性があります。

変更の理由

この変更により、.NET 6 で誤って導入された大きな破壊的変更が部分的に元に戻されます。 HEADまたはGET以外の方法で要求を行うときにフォールバック ファイルの応答を期待することは非常に珍しいので、この破壊的変更の影響は最小限にする必要があります。

フォールバック ファイル エンドポイントで要求を HEAD または GET 以外のメソッドと照合する場合は、 WithMetadata()を使用して追加の HTTP 要求メソッドを指定できます。 例えば次が挙げられます。

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

影響を受ける API