IotHubClientTransientException:发生暂时错误,请重试

时间:2018-10-19 08:39:31

标签: uwp mqtt iot azure-iot-hub

我在舷外板上安装了一个UWP应用,该应用可以读取发送到该deviceID的IotHub消息。

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

该应用程序可以正常运行,并且可以正确读取消息,但是有时候我有以下例外情况:

  

IotHubClientTransientException:发生暂时错误,请重试。

我读到这些错误可能是由错误的连接字符串引起的,但对于我而言,这是不可能的。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

该错误很可能是由网络连接错误引起的。只需添加重试策略即可。您可以自己编写或使用Polly.Net

之类的库

在分布式世界中,应该会遇到连接问题,因此我认为您的代码没有任何问题,而应该具有更大的弹性。我认为异常甚至告诉您应该重试是非常好的,大多数时候您必须弄清楚自己。

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

  

重试

     

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