首页 > 解决方案 > IotHubClientTransientException:发生瞬态错误,请重试

问题描述

我在 upboard 上安装了一个 UWP 应用程序,它读取发送到该 deviceID 的 IotHub 消息。

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

该应用程序工作正常并正确读取消息,但有时我有以下例外:

IotHubClientTransientException:发生瞬态错误,请重试。

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

有人能帮我吗?

标签: azureuwpmqttiotazure-iot-hub

解决方案


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

在分布式世界中,应该会出现连接问题,所以我认为您的代码没有任何问题,除了应该更有弹性。我认为异常甚至告诉您应该重试它真的很好,大多数时候您必须自己弄清楚。

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

重试

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


推荐阅读