Blazor. NET: Что вызывает "Задача была отменена" в JavaScript - PullRequest
2 голосов
/ 01 апреля 2020

У меня есть Server Side Blazor. NET приложение (do tnet core 3.1) с библиотекой: ProtectedBrowserStorage (https://www.nuget.org/packages/Microsoft.AspNetCore.ProtectedBrowserStorage ) для зашифрованного хранилища в Client Browswer

Иногда в моих файлах журналов появляются ошибки, которые выглядят так:

2020-04-01 14:05:17.4809 Error System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at Microsoft.JSInterop.JSRuntime.InvokeWithDefaultCancellation[T](String identifier, Object[] args)
   at Microsoft.AspNetCore.ProtectedBrowserStorage.ProtectedBrowserStorage.GetAsync[T](String purpose, String key)
   at PegasusV6.LocalStorageService.LoadBasket(MenuDTO menu) in LocalStorageService.cs:line 40 A task was canceled. 

Моя проблема в том, что я не знаю, что вызывает эту ошибку в JavaScript звонки.

Возможно ли ограничение сервера, которое может исправить такую ​​ошибку?

Или это на стороне клиента, что пользователь может иметь не очень хорошую скорость rnet скорость / соединение, которое очень требуется для серверной части Blazor?

Надеюсь, кто-нибудь может дать мне подсказку или что-нибудь, что может улучшить его. Это функция C#, которая вызывается:

    public async Task LoadBasket(MenuDTO menu)
    {
        try
        {
            AppState.BasketData = await ProtectedLocalStore.GetAsync<BasketState>($"Basket_{My.StoreId}") ?? new BasketState();
        }
        catch (Exception ex)
        {
            My.Log.Error(ex);
            AppState.BasketData = new BasketState();
        }
    }

Спасибо!

1 Ответ

0 голосов
/ 27 апреля 2020

Существует максимальный размер по умолчанию для входящего сообщения концентратора. В первый раз, когда я столкнулся с этой проблемой, я попытался изменить ApplicationMaxBufferSize и TransportMaxBufferSize концентратора блейзора, но это не решило проблему.

Вместо этого добавьте SignalR обслуживание и установите MaximumReceiveMessageSize.

        services.AddSignalR(e => {
            e.MaximumReceiveMessageSize = 1000;
        });

https://docs.microsoft.com/en-gb/aspnet/core/signalr/configuration?view=aspnetcore-3.0&tabs=dotnet#configure -server-options

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...