後援檔案端點
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 */ }));