Я слишком быстро борюсь с сообщениями, попадающими в очередь недоставленных писем. Я указал политику ExponentialRetry следующим образом:
private readonly RetryExponential _retryPolicy = new RetryExponential(
TimeSpan.FromSeconds(1),
TimeSpan.FromMinutes(20),
10);
Когда SQL Server временно не работает ("because its replica role is RESOLVING which does not allow connections. Try the operation again later.
"), тогда сообщения попадают в очередь недоставленных сообщений без повторных попыток.
Что мне делать, чтобы получить повторные попытки?
Я просмотрел исходный код для SDK , и кажется, что только временное исключение ServiceBusException дает повторные попытки, но я нахожу, что вполнестранно.
ОБНОВЛЕНИЕ:
После обсуждения с коллегами и просмотра более подробных сведений в Application Insights я вижу, что на самом деле он повторил попытку 10 раз, но всев течение 2 секунд. Это максимальное количество доставки, установленное на самой подписке, а не на клиенте. Эта доставка не зависит от экспоненциального отката, как я хочу и нуждаюсь.