DeviceClient.GetTwinAsync() returns 无效?
DeviceClient.GetTwinAsync() returns null?
我创建了一个 IotHub,添加了一个设备,创建了一个使用 DeviceClient 成功连接到集线器的 UWP 应用程序。 我可以按预期发送遥测数据,并在设备资源管理器中查看结果。
但是,当我尝试获取设备孪生时,我返回了一个空值。
var deviceClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Amqp);
var twin = await deviceClient.GetTwinAsync(); // <<<< returns null
是否有任何可能导致此问题的常见情况?例如在 Twin 发布之前创建 IoTHub 和设备。或者,没有事先设置任何所需的属性?或者,使用了错误的共享访问密钥? (等等)
-约翰
解决方案:孪生功能需要 MQTT 协议,我使用的是 AMQP。 我敢肯定有人提到这个埋在某个地方,但在旋转了几个小时之后我可以肯定地说它并不明显。
更实际的说明:如果在无法支持 Twin 的连接上调用 GetTwinAsync() 方法,则抛出异常可能会有所帮助。
希望这个 post 能帮助到下一个人。
-约翰