Azure IoTubClientTransientException:发生暂时性错误,请重试

Azure IoTubClientTransientException:发生暂时性错误,请重试,azure,uwp,mqtt,iot,azure-iot-hub,Azure,Uwp,Mqtt,Iot,Azure Iot Hub,我在上传板上安装了一个UWP应用程序,可以读取发送到该设备ID的IotHub消息 deviceClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Mqtt); Message receivedMessage = await deviceClient.ReceiveAsync(); 该应用程序工作正常,能够正确读取消息,但有时我会遇到以下例外情况: IoTubClientTr

我在上传板上安装了一个UWP应用程序,可以读取发送到该设备ID的IotHub消息

deviceClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Mqtt);
Message receivedMessage = await deviceClient.ReceiveAsync();
该应用程序工作正常,能够正确读取消息,但有时我会遇到以下例外情况:

IoTubClientTransientException:发生暂时性错误,请重试

我了解到这些错误可能是由错误的连接字符串生成的,但在我的情况下是不可能的


有人能帮我吗?

该错误很可能是由网络连接错误引起的。只需添加一个重试策略。您可以编写自己的或使用类似的库

在分布式世界中,连接问题应该是意料之中的,所以我认为您的代码没有任何问题,只是应该更具弹性。我认为异常甚至告诉您应该重试,这真是太好了,大多数时候您必须自己解决这个问题

可以找到Azure团队提供的更多指导。在您的情况下,重试模式非常适合:

重试

通过透明地重试以前失败的操作,使应用程序能够在尝试连接到服务或网络资源时处理预期的临时故障


感谢@Peter BonsI我也遇到了同样的错误,奇怪的是它只发生在(但不总是)数千台设备中的一台设备上…非常奇怪。。。