C# 未找到.NET 5 Blazor HttpClient BaseAddressAuthorizationMessageHandler

C# 未找到.NET 5 Blazor HttpClient BaseAddressAuthorizationMessageHandler,c#,blazor,blazor-webassembly,.net-5,C#,Blazor,Blazor Webassembly,.net 5,我正在尝试使用将身份验证添加到我的.NET5BlazorWASM应用程序中,但出现了一个错误 未处理的异常呈现组件:未注册“Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler”类型的服务。 我从git下载了这个示例,运行了它,一切都正常了,然后我注意到这个示例是在.NET3中完成的,当我将它更新为在.NET5中运行时,同样的错误也逐渐出现了。在我的Pro

我正在尝试使用将身份验证添加到我的.NET5BlazorWASM应用程序中,但出现了一个错误

未处理的异常呈现组件:未注册“Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler”类型的服务。

我从git下载了这个示例,运行了它,一切都正常了,然后我注意到这个示例是在.NET3中完成的,当我将它更新为在.NET5中运行时,同样的错误也逐渐出现了。在我的
Program.cs
中,我注册了
HttpClient
BaseAddressAuthorizationMessageHandler
如下

  public static async Task Main(string[] args)
  {
     var builder = WebAssemblyHostBuilder.CreateDefault(args);
     builder.RootComponents.Add<App>("app");

     builder.Services.AddHttpClient("ServerAPI",
        client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
     .AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();

     builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
         .CreateClient("ServerAPI"));

     builder.Services.AddBlazoredLocalStorage();
     builder.Services.AddAuthorizationCore();
     builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
     builder.Services.AddScoped<IAuthService, AuthService>();

     await builder.Build().RunAsync();
  }
公共静态异步任务主(字符串[]args)
{
var builder=WebAssemblyHostBuilder.CreateDefault(args);

builder.RootComponents.Add,我缺少了什么吗?我需要导入一个名称空间还是缺少配置的另一部分?断点似乎在客户端的
程序.cs中不起作用,我看不到任何其他错误可以解释这一点。

一旦我弄清楚发生了什么,这是一个相当简单的修复在上,当像这样设置授权时,显然不需要向客户端添加
BaseAddressAuthorizationMessageHandler
,因为本例是通过
AuthService
手动设置HTTP请求头

  public static async Task Main(string[] args)
  {
     var builder = WebAssemblyHostBuilder.CreateDefault(args);
     builder.RootComponents.Add<App>("app");

     builder.Services.AddHttpClient("ServerAPI",
        client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress));

     builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
         .CreateClient("ServerAPI"));

     builder.Services.AddBlazoredLocalStorage();
     builder.Services.AddAuthorizationCore();
     builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
     builder.Services.AddScoped<IAuthService, AuthService>();

     await builder.Build().RunAsync();
  }
公共静态异步任务主(字符串[]args)
{
var builder=WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add(“应用程序”);
builder.Services.AddHttpClient(“ServerAPI”,
client=>client.BaseAddress=新Uri(builder.hostenEnvironment.BaseAddress));
builder.Services.addScope(sp=>sp.GetRequiredService()
.CreateClient(“ServerAPI”);
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddAuthorizationCore();
builder.Services.addScope();
builder.Services.addScope();
等待builder.Build().RunAsync();
}