DeviceClient.GetTwinAsync()返回null?

时间:2017-03-04 21:34:59

标签: azure-iot-hub

我创建了一个IotHub,添加了一个设备,创建了一个UWP应用程序,它使用DeviceClient成功连接到集线器。 我可以按预期发送遥测,并在设备资源管理器中查看结果。

但是,当我尝试获取双胞胎设备时,我已经返回了空值。

    var deviceClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Amqp);
    var twin = await deviceClient.GetTwinAsync();  // <<<< returns null

是否有可能导致此问题的常见情况?比如创建IoTHub&amp;在Twin发布之前的设备。或者,没有预先设置任何所需的属性?或者,使用错误的共享访问密钥? (等)

-John

1 个答案:

答案 0 :(得分:1)

解决方案:Twin功能需要MQTT协议,我使用的是AMQP。 我确定有人提到这个埋藏在某个地方,但经过几个小时的旋转之后,我可以肯定地说这不是很明显。

更实际的说明:如果在无法支持Twin的连接上调用异常,则在GetTwinAsync()方法中抛出异常可能会有所帮助。

希望这篇文章能帮助下一个人。

-John