2017-03-04 177 views
0

我创建了一个IotHub,添加了一个设备,创建了一个使用DeviceClient成功连接到集线器的UWP应用程序。 我可以按预期发送遥测数据,并在设备浏览器中查看结果。DeviceClient.GetTwinAsync()返回null?

但是,当我尝试获取设备孪生时,我返回null。

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

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

-John

回答

1

SOLUTION:双床能力需要MQTT协议,我用AMQP。 我确信这里有一处被埋没的地方,但是经过几个小时之后,我可以放心地说这并不明显。

更实际一点:如果在不支持Twin的连接上调用GetTwinAsync()方法时引发异常,可能会有所帮助。

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

-John

+0

是的,你是对的。 [目前,只能从使用MQTT协议连接到IoT Hub的设备访问设备双胞胎。](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-设备双胞胎) –

+0

感谢您确认丽塔。我观察的第二部分呢,抛出一个异常是否合理? – JohnKoz

+0

也许吧。你可以在github上打开一个问题(https://github.com/Azure/azure-iot-sdks)。 –