我正在尝试在Module的设备孪生节点上设置所需的属性,但是当我从IoT中心检索孪生节点时,它返回的都是空值。
var moduleClient = ModuleClient.CreateFromConnectionString(connectionString);
var moduleTwin = await moduleClient.GetTwinAsync();
当我在调试器中检查moduleTwin时,会得到
连接字符串是模块的一个,是从IoT中心复制的。
知道我在做什么错吗?
答案 0 :(得分:2)
这是设计使然。因此,预计会出现此问题。
在模块应用程序中,仅具有读取所需属性和读取/写入报告的属性的权限。请参阅以下内容:
要访问所有孪生模块,可以从解决方案后端进行操作,并且需要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”