GetTwinAsync returns 具有空属性的设备

GetTwinAsync returns a device with null properties

我正在尝试从注册表管理器中读取我的设备的双胞胎。这是我的代码:

DeviceClient client = 
DeviceClient.CreateFromConnectionString(DeviceConnectionString, 
TransportType.Mqtt);

Twin deviceTwin = await deviceClient.GetTwinAsync();
Console.WriteLine(deviceTwin.ToJson());

然而,Json 我得到的是以下内容。

{"deviceId":null,"etag":null,"version":null,"properties":{"desired":{"$version":1},"reported":{"$version":1}}}

我重现了你的问题。

对于这个问题,您可以在 azure-iot-sdk-csharp 存储库上打开一个问题。

对于解决方法,您可以像这样使用 REST API:

或者像这样使用 Azure IoT 服务 SDK:

using Microsoft.Azure.Devices;

...

 var client = RegistryManager.CreateFromConnectionString(IoTHubConnectionString);
 var twinData = await client.GetTwinAsync(deviceId);
 Console.WriteLine(twinData.ToJson());

这不是问题 and/or 解决方法。 Documentation 状态:

Retrieve the device twin properties for the current device. For the complete device twin object, use Microsoft.Azure.Devices.RegistryManager.GetTwinAsync(string deviceId).