Blazor 在尝试激活 DefaultAuthorizationPolicyProvider 时无法解析 AuthorizationOptions
Blazor wasm unable to resolve AuthorizationOptions while attempting to activate DefaultAuthorizationPolicyProvider
我正在开发 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();
然后会产生上述异常...
解决方案
当我第一次将 AddOptions() 添加到 Program.cs 中的服务时,问题就解决了:
builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();
我有一个从 Blazor 3.1 预览版 4 开始的项目,不需要这个 "AddOptions",一切都很好。
然后我将它迁移到 Blazor 3.2.0 预览版 1,做了所有推荐的东西(不再启动,只使用 program.cs 等等),突然一切都坏了。
LYper 回答中的这两行解决了我的问题。谢谢。
有谁知道为什么???
我正在开发 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();
然后会产生上述异常...
解决方案
当我第一次将 AddOptions() 添加到 Program.cs 中的服务时,问题就解决了:
builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();
我有一个从 Blazor 3.1 预览版 4 开始的项目,不需要这个 "AddOptions",一切都很好。 然后我将它迁移到 Blazor 3.2.0 预览版 1,做了所有推荐的东西(不再启动,只使用 program.cs 等等),突然一切都坏了。 LYper 回答中的这两行解决了我的问题。谢谢。 有谁知道为什么???