にアップグレードしNet Core 3.0 Preview 9
てから、コンソール ロガーを挿入しようとすると、次のエラーが発生します。
WASM: System.MissingMethodException: メソッドが見つかりません: System.Threading.Task.Task`1 Microsoft.JSInterop.IJSRuntime.InvokeAsync(string,object[])
WASM: System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) <0x2df6378 + 0x0003e> で:0
WASM: Blazor.Extensions.Logging.BrowserConsoleLogger.Log[TState] (Microsoft.Extensions.Logging.LogLevel logLevel、Microsoft.Extensions.Logging.EventId eventId、TState 状態、System.Exception 例外、System.Func`3[T1、 T2,TResult] フォーマッター) <0x2df5e90 + 0x00094> in <3eb34b93cd4a47bf804fb0648b089edf>:0
WASM: Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass4_0.b__0 (Microsoft.Extensions.Logging.ILogger ロガー、System.Exception 例外) <0x2df51a0 + 0x00058> で:0
WASM: at (wrapper delegate-invoke) System.Action`2[Microsoft.Extensions.Logging.ILogger,System.Exception].invoke_void_T1_T2(Microsoft.Extensions.Logging.ILogger,System.Exception)
WASM: Microsoft.Extensions.Logging.LoggingExtensions.UserAuthorizationFailed (Microsoft.Extensions.Logging.ILogger ロガー) <0x2dee5f0 + 0x00014> で <85acc2b572f448f39259eac9936732f8>:0
WASM: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService.AuthorizeAsync (System.Security.Claims.ClaimsPrincipal ユーザー、System.Object リソース、System.Collections.Generic.IEnumerable`1[T] 要件) で <85acc2b572f448f39259eac9936732f8> の <0x2ddd378 + 0x00338> :0
WASM: Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.IsAuthorizedAsync (System.Security.Claims.ClaimsPrincipal ユーザー) で <5266bbb196bb40a89b886a09631725e6> の <0x2d52860 + 0x00228>:0
WASM: Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.OnParametersSetAsync () <0x2d512a0 + 0x0026c> で <5266bbb196bb40a89b886a09631725e6>:0
WASM: Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion (System.Threading.Tasks.Task タスク) <0x2e0b8f0 + 0x00118> で:0
WASM: Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () <0x2bbb2e8 + 0x00248> で:0
私のかみそりビューでは、次のようにロガーを挿入します。
@inject ILogger<Index> logger
私のベース_Imports.razor
は次のとおりです。
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Authorization
@using System.Net.Http
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.JSInterop
@using Microsoft.Extensions.Logging
@using Blazored.LocalStorage
@using Blazorise
@using Blazorise.Sidebar
そして私のApp.razor
です。
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
<NotAuthorized>
<p>Nope, nope!</p>
</NotAuthorized>
</AuthorizeRouteView>
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
この時点でレンダリングされているビューは、ログイン ページです。ユーザーが承認されていない場合、リダイレクトで移動されます。したがって、私のMainLayout.Razor
ページには次のものがあります。
@functions
{
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask { get; set; }
protected override async Task OnInitializedAsync()
{
var authState = await authenticationStateTask;
var user = authState.User;
if (!user.Identity.IsAuthenticated)
{
UriHelper.NavigateTo(@"\login");
}
}
}
完全ConfigureServices
をStartup.cs
期すために、次のようにロガーを追加します。
services.AddLogging(builder => builder
.AddBrowserConsole()
.SetMinimumLevel(LogLevel.Trace)
);
ここで私が間違っていることを誰かに教えてもらえますか? 「ログイン」ページがレンダリングされているため、問題があるのはロガーにあるように見えますか?
Tsengs のコメントによると、私のナゲットの依存関係は次のとおりです。