2

我正在尝试在模块的设备双胞胎上设置所需的属性,但是当我从 IoT 中心检索双胞胎时,它返回的都是空值。

var moduleClient = ModuleClient.CreateFromConnectionString(connectionString);
var moduleTwin = await moduleClient.GetTwinAsync();

当我在调试器中检查 moduleTwin 时,我得到

调试器将所有属性显示为 null

连接字符串是模块的连接字符串,从 IoT 中心复制。

知道我做错了什么吗?

4

1 回答 1

3

这是设计使然。所以这个问题是预料之中的。

从模块应用程序中,只有读取所需属性和读取/写入报告属性的权限。请参阅以下内容:

在此处输入图像描述

要访问所有模块孪生,您可以从解决方案后端执行此操作并需要 ServiceConnect 权限。模块孪生是新添加的。您需要 Microsoft.Azure.Devices V1.16.0-preview-001 或更高版本。以下是控制台应用示例。

        RegistryManager registryManager = RegistryManager.CreateFromConnectionString(connectionString);
        Module module;

        var moduleTwin = await registryManager.GetTwinAsync(deviceID, moduleID);

在此处输入图像描述

参考:

了解和使用 IoT Hub 中的模块孪生

使用 .NET 后端和 .NET 设备开始使用 IoT 中心模块标识和模块孪生

于 2018-08-09T08:35:28.293 回答