unten präsentiere ich die Richtlinie, die ich verwende, um eine Postasync () -Anforderung mit einem httpclient zu behandeln. Es scheint jedoch, als ob ich eine generische Ausnahme bestanden habe, aber es wird immer noch beschließt, sie zu werfen und nicht wiederzuholen. Ich möchte fragen, warum dies und irgendwelche Problemumgehungen ist. < /P>
var retryPolicy = Policy.Handle()
.WaitAndRetryForeverAsync(
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
onRetry: (exception, timeSpan) =>
{
_logger.Log(LogEnums.Error, $"Post failure on Authenticating Client for {this.GetType().Name.Replace("_", " ")}. Trying again...");
});
foreach (var payload in payloads)
{
var stringPayload = JsonConvert.SerializeObject(payload);
var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json");
var r2 = await retryPolicy.ExecuteAsync(() =>
_httpClient.PostAsync($"{_moduleConfig.Endpoint}/options/selected", httpContent));
r2.EnsureSuccessStatusCode();
}
< /code>
Ich habe auch versucht, ein Richtlinien -Timeout zu verwenden, anstatt das Zeitübergang des HTTPClient. Dies schien das gleiche Ergebnis zu haben. Weitere Kontext finden Sie in der Antwort. Sekunden verstrichen.>
Warum wird meine Polly -Wiederholung sowie ohnehin "gefangene" Ausnahmen (httpclient.timeout) geworfen. ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post