Код: Выделить всё
var timeoutSec = builder.Configuration.GetValue("Main:ServiceTimeoutSec");
builder.Services.AddHttpClient((serviceProvider, client) =>
{
var config = serviceProvider.GetRequiredService();
var baseAddress = config["Api:ApiBaseAddress"] ?? "MISSING_BASE_ADDRESS";
client.BaseAddress = new Uri(baseAddress);
// HAS NO EFFECT -> client.Timeout = TimeSpan.FromSeconds(timeoutSec);
})
.AddPolicyHandler(Policy.TimeoutAsync(TimeSpan.FromSeconds(timeoutSec))); // API query timeout
Когда я устанавливаю ServiceTimeOutsec в конфигурации менее 30 с , то время Polly работает нормально и отбрасывает TimeOUtrectionedException . Это нормально!
Код: Выделить всё
The operation didn't complete within the allowed timeout of '00:00:30'.Почему бы не использовать мой настройка на 60 секунд в этом случае? Конструктор, он показывает по умолчанию 00:01:40.
Я дважды проверяю DI и службу, а также хороший HttpClient в построенном в службе.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... 30-seconds