Серверное приложение Blazor, не загружается при слишком большом количестве запросов

#iis #blazor #blazor-server-side #iis-10 #.net-5

#iis #blazor #blazor-на стороне сервера #iis-10 #.net-5

Вопрос:

Я создал небольшое серверное приложение Blazor на .NET 5.0 и развернул его в IIS (версия 10.0), оно отлично работало во время тестирования, но после его публикации сайт иногда вообще не загружался. Через некоторое время я понял, что он работает до тех пор, пока не будет достигнуто определенное количество запросов, а затем он перестает загружаться.

Например, я открываю 30 вкладок сайта, и с вкладки 25 он больше не загружается, но в остальном все работает нормально. Когда я закрываю некоторые из тех, которые работают, вкладки, которые не загружались до загрузки должным образом.

Затем я попытался протестировать это с помощью проекта серверного приложения Blazor по умолчанию — тот же результат. Так что, я думаю, это как-то связано с IIS. Я попробовал это на 2 разных IIS (локальный IIS и один на другом сервере), одинаковый результат для обоих.

Я не смог найти никаких предложений по устранению неполадок, поэтому я был бы очень рад, если бы у кого-то еще была эта проблема, и он мог бы мне помочь.

С наилучшими пожеланиями

Комментарии:

1. Может быть ограничение, описанное здесь: docs.microsoft.com/en-us/aspnet/signalr/overview /…

2. Какую операционную систему и версию вы используете? Вы видите ту же проблему при открытии вкладок в режиме отладки Visual Studio?

Ответ №1:

Возможно, вы можете попробовать использовать CancellationToken, когда вы переходите на другую вкладку, вы можете вызвать метод отмены, чтобы остановить текущие операции.

     private CanecellationToken cts= new CancellationTokenSource();
    public List<Model> MyList{ get; set; }
    protected override async task OnInitializedAsync()    
    {
        var obj= await Http.GetFromJsonAsync<MyList>("/api/Model", cts.Token).ToList();
    }
    public void Dispose()
{
    cts.Cancel();
    cts.Dispose();
}
 

Проверьте источник meziantou
здесь