FCM SendEachForMulticastAsync иногда завершается с ошибкой «Произошла ошибка при отправке запроса»C#

Место общения программистов C#
Ответить
Anonymous
 FCM SendEachForMulticastAsync иногда завершается с ошибкой «Произошла ошибка при отправке запроса»

Сообщение Anonymous »

Контекст:
В приложении, разработанном на C# в .Net 6, я использую FirebaseAdmin nuget версии 3.0.0 для отправки веб-push-уведомлений. Я использую функцию FirebaseMessaging.DefaultInstance.SendEachForMulticastAsync. Приложение развертывается в IIS на сервере Azure за шлюзом.
Проблема
Случайно, после пула приложений запускается, все запросы уведомлений, сделанные SendEachForMulticastAsync, терпят неудачу, и результат для каждого ответа содержит следующее исключение: «Неизвестная ошибка при выполнении удаленного вызова службы: произошла ошибка при отправке запроса.».
Мне нужно переработать пул, чтобы он снова заработал.
Расследованные версии
Сначала я подумал, что это был Ошибка обработки DNS HttpClient, поскольку перезапуск может решить проблему. Но затем я увидел, что FirebaseAdmin использует HttpClient через свою собственную IHttpClientFactory (которая должна обрабатывать динамический IP-адрес), а время жизни по умолчанию составляет 1 минуту, поэтому даже после того, как уведомление не удалось отправить, должно было пройти другое уведомление через час.
Я также видел, что получаю ошибки, когда мои пулы запускаются в определенном порядке, но поскольку я инициализирую FirebaseAdmin только для одного пула, это может быть совпадением. (но все мои пулы имеют зависимость nuget от FirebaseAdmin из-за устаревшего)
Вопрос
Что может быть причиной такое поведение? Будет ли это больше связано с сетью или с программным обеспечением?

Подробнее здесь: https://stackoverflow.com/questions/790 ... curred-whi
Ответить

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

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

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

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

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