web-dev-qa-db-ja.com

Blazorは、DefaultAuthorizationPolicyProviderをアクティブ化しようとしたときに、AuthorizationOptionsを解決できませんでした

私はBlazor wasmアプリケーションで作業していて、App.razorファイルにAuthorizeRouteViewコンポーネントを追加すると例外が発生しました。これに関するリソースがほとんどないため、解決にかなりの時間を費やしました。そのため、ここで解決策を共有したいと思います。

エラーメッセージは:

System.InvalidOperationException: 'Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider'をアクティブ化しようとしているときに、タイプ 'Microsoft.Extensions.Options.IOptions`1 [Microsoft.AspNetCore.Authorization.AuthorizationOptions]'のサービスを解決できません。

パッケージのバージョン:

    <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.DevServer" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview1.20073.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="3.1.1" PrivateAssets="all"/>

以下の説明では、Program.csサービスにAddAuthorizationCore()を追加するだけで済みました。

builder.Services.AddAuthorizationCore();

これにより、上記の例外が発生します...

4
LYper

Blazor 3.1プレビュー4で始まったプロジェクトがありますが、この "AddOptions"は必要ありませんでした。次に、それをBlazor 3.2.0プレビュー1に移行しました。すべての推奨事項(スタートアップは不要、program.csのみを使用するなど)を実行し、突然すべてが壊れました。 LYperの回答からのこれらの2行は私の問題を解決しました。ありがとう。なぜ誰か知っていますか?

1
MarPinello