2

にアップグレードし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");
        }
    }
}

完全ConfigureServicesStartup.cs期すために、次のようにロガーを追加します。

        services.AddLogging(builder => builder
           .AddBrowserConsole() 
           .SetMinimumLevel(LogLevel.Trace)
       );

ここで私が間違っていることを誰かに教えてもらえますか? 「ログイン」ページがレンダリングされているため、問題があるのはロガーにあるように見えますか?

Tsengs のコメントによると、私のナゲットの依存関係は次のとおりです。

ブレザーの依存関係

4

1 に答える 1