模块双胞胎空着回来

Module twin coming back empty

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

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

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

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

知道我做错了什么吗?

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

来自模块应用程序,只有读取所需属性和 read/write 报告属性的权限。请参阅以下内容:

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

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

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

参考:

understand and use module twins in IoT Hub

"Get started with IoT Hub module identity and module twin using .NET back end and .NET device"