IotHubClientTransientException: произошла временная ошибка, повторите попытку - PullRequest
0 голосов
/ 19 октября 2018

У меня установлено приложение UWP, которое читает сообщения IotHub, отправленные этому идентификатору устройства.

deviceClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Mqtt);
Message receivedMessage = await deviceClient.ReceiveAsync();

Приложение работает нормально и правильно читает сообщения, но иногда у меня возникают следующие исключения:

IotHubClientTransientException: произошла временная ошибка, повторите попытку.

Я прочитал, что эти ошибки могут быть сгенерированы из неправильной строки подключения, но в моем случае это невозможно.

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 19 октября 2018

Ошибка, скорее всего, вызвана ошибкой сетевого подключения.Просто добавьте стратегию повторения.Вы можете просто написать свою собственную или использовать библиотеку типа Polly.Net

В распределенном мире следует ожидать проблем с подключением, поэтому я не думаю, что есть какие-либо проблемы с вашим кодом, другойчем это должно быть более устойчивым.Я думаю, что это действительно хорошо, что исключения даже говорят вам, что следует повторить попытку, в большинстве случаев вы сами должны это выяснить.

Дополнительные указания от команды Azure можно найти здесь .В вашем случае шаблон Retry хорошо подходит:

Retry

Позволяет приложению обрабатывать ожидаемые временные сбои при попытке подключения к услуге или сетевому ресурсу путем прозрачной повторной попыткиоперация, которая ранее не удалась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...