Тайм-аут Polly в приложении Blazor WASM HttpClientC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Тайм-аут Polly в приложении Blazor WASM HttpClient

Сообщение Anonymous »

Новичок в .Net и Blazor. Я пытаюсь продлить тайм-аут моего вызова HTTPClient (я предполагаю) в своем приложении Blazor. Независимо от того, что я делаю, тайм-аут происходит через 10 секунд и начинается повторная попытка, что может раздражать при отладке. Я предполагаю, что это тайм-аут HTTPClient, но что бы я ни пытался, кажется, что тайм-аут истекает через 10 секунд. Я проверяю тайм-аут перед HTTP-вызовом, и кажется, что это время, которое я установил, но время ожидания все равно истекает. Я неправильно устанавливаю тайм-аут HTTP или вместо этого что-то в Blazor истекает?
Код для установки тайм-аута HTTP-клиента в программе Blazor.cs:

Код: Выделить всё

var builder = WebApplication.CreateBuilder(args);

// Add service defaults & Aspire components.
builder.AddServiceDefaults();

// Add services to the container.
builder.Services.AddRazorComponents().AddInteractiveServerComponents();
builder.Services.AddOutputCache();
builder.Services.ConfigureApplicationCookie(ops =>
{
ops.ExpireTimeSpan = TimeSpan.FromMinutes(30);
ops.SlidingExpiration = true;
});

builder.Services.AddHttpClient(client =>
{
// This URL uses "https+http://" to indicate HTTPS is preferred over HTTP.
// Learn more about service discovery scheme resolution at https://aka.ms/dotnet/sdschemes.
client.BaseAddress = new("https+http://myapipath/");
client.Timeout = TimeSpan.FromMinutes(10);
}).SetHandlerLifetime(TimeSpan.FromMinutes(10));
В файле Extensions.cs (автоматически созданном при создании решения) у меня есть:

Код: Выделить всё

public static class Extensions
{
public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder)
{
builder.ConfigureOpenTelemetry();

builder.AddDefaultHealthChecks();

builder.Services.AddServiceDiscovery();

builder.Services.ConfigureHttpClientDefaults(http =>
{
// Turn on resilience by default
http.AddStandardResilienceHandler();

// Turn on service discovery by default
http.AddServiceDiscovery();
});

return builder;
}
Фактический вызов в файле Razor выглядит следующим образом:

Код: Выделить всё

 Debug.WriteLine("Timeout: " + httpClient.Timeout.TotalMinutes);
var response = await httpClient.PostAsJsonAsync("/api/whatever", singleModel);
Но вызов всегда останавливается из-за этой ошибки:

Код: Выделить всё

Polly: Warning: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: 'The operation didn't complete within the allowed timeout of '00:00:10'.', Handled: 'True', Attempt: '0', Execution Time: 11134.0462ms

Polly.Timeout.TimeoutRejectedException: The operation didn't complete within the allowed timeout of '00:00:10'.
---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
---> System.IO.IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request..
---> System.Net.Sockets.SocketException (995): The I/O operation has been aborted because of either a thread exit or an application request.
--- End of inner exception stack trace ---
Это проблема HTTPClient или что-то еще?
Пытался продлить срок действия вызова HTTPClient до 10 минут, но все равно был отменен через 10 секунд. .

Подробнее здесь: https://stackoverflow.com/questions/790 ... httpclient
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вызывает ли сбой тайм-аут сторожевого таймера или тайм-аут является результатом сбоя?
    Anonymous » » в форуме Linux
    0 Ответы
    159 Просмотры
    Последнее сообщение Anonymous
  • Тайм-аут вызова API и тайм-аут попытки вызова API dynamodb
    Anonymous » » в форуме JAVA
    0 Ответы
    123 Просмотры
    Последнее сообщение Anonymous
  • C# Polly, Polly не работает, если функция завершится
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему мое приложение Blazor Wasm загружает 90 файлов .wasm при каждом обновлении страницы?
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Конечная точка вызова защищена с помощью [Authorize] с помощью HttpClient в Blazor wasm
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»