Blazor не смог разрешить AuthorizationOptions при попытке активировать DefaultAuthorizationPolicyProvider - PullRequest
4 голосов
/ 08 февраля 2020

Я работаю над приложением wasm Blazor и столкнулся с исключением при добавлении компонента AuthorizeRouteView в файл App.razor. Я потерял довольно много времени, пытаясь решить проблему, так как об этом мало ресурсов, поэтому я хочу поделиться решением здесь:

Сообщение об ошибке было:

System.InvalidOperationException: Невозможно разрешить службу для введите 'Microsoft.Extensions.Options.IOptions`1 [Microsoft.AspNetCore.Authorization.AuthorizationOptions]' при попытке активировать 'Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider'.

Версии пакета:

    <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"/>

Следуя описаниям, мне нужно было только добавить AddAuthorizationCore () в Службах Program.cs:

builder.Services.AddAuthorizationCore();

Затем выдается указанное выше исключение ...

Ответы [ 2 ]

18 голосов
/ 08 февраля 2020

Решение

Когда я впервые добавил AddOptions () к Сервисам в Program.cs, проблема была решена:

builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();

1 голос
/ 18 февраля 2020

У меня есть проект, который начался с предварительного просмотра Blazor 3.1, и для этого «AddOptions» не было необходимости, все было хорошо. Затем я перенес его в Blazor 3.2.0 preview 1, выполнил все рекомендуемые действия (больше не нужно запускать, используйте program.cs only et c et c) и внезапно все сломалось. Эти 2 строки из ответа LYper решили мою проблему. Спасибо. Кто-нибудь знает почему ???

...