У меня есть следующий код
try
{
using (var client = HttpClientBuilder.CreateClient(PingTimeoutMilliseconds, true))
{
var response = await Policy
.Handle<Exception>(ex => ex is HttpRequestException || ex is TaskCanceledException)
.WaitAndRetryAsync(new[]
{
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(3)
}, (ex, timeSpan, retryCount, context) =>
{
loggerService.Log(ex);
loggerService.Log($"Ping request failed. Waiting {timeSpan} seconds before next retry. Retry attempt {retryCount}");
})
.ExecuteAsync(() => client.SendAsync(new HttpRequestMessage(HttpMethod.Head, uri)));
IsInternetAvailable = response.IsSuccessStatusCode;
return response.IsSuccessStatusCode;
}
}
И некоторые клиенты жалуются на исключение
Uitzonderingsinformat ie: System.IO.FileNotFoundException
System.IO.FileNotFoundException
bij Showpad.OutlookDesktopAddIn.Infrastructure.Helpers.PingHelper+<IsInternetAvailableAsync>d__5.MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Showpad.OutlookDesktopAddIn.Infrastructure.Helpers.PingHelper+<IsInternetAvailableAsync>d__5, Showpad.OutlookDesktopAddIn, Version=2.7.6.0, Culture=neutral, PublicKeyToken=null]](<IsInternetAvailableAsync>d__5 ByRef)
Я могу подозревать, что что-то может быть не так с библиотекой Полли (поскольку существует исключение ввода-вывода) в строке 5, ожидают политики
using Polly;