GetTwinAsync()总是返回带有空属性的双胞胎对象,当我在模拟器中运行我的IoT边缘设备时,我的IoT边缘模块的所有属性都是空的,在我的Linux服务器中一切正常。我也应该等待大约20秒,以获得来自GetTwinAync()的响应。
发布于 2021-11-01 10:10:19
如果我们看一下它,这个问题是意料之中的。如果您阅读此Understand and use module twins in IoT Hub文档,那么您将看到,从模块app中,只有读取所需属性和读/写报告属性的权限。如果你查看下面的图像,你会更好地理解。
模块twin的生命周期链接到相应的模块标识。在IoT集线器中创建或删除模块标识时,会隐式创建和删除模块双胞胎。
要访问所有模块属性,您可以从solution后台访问,并需要ServiceConnect权限。您将需要Microsoft.Azure.Devices V1.16.0-preview-001或更高版本。以下是控制台应用程序的代码片段。
...
RegistryManager registryManager = RegistryManager.CreateFromConnectionString(connectionString);
Module module;
try
{
module = await registryManager.AddModuleAsync(new Module(deviceID, moduleID));
}
catch (ModuleAlreadyExistsException)
{
module = await registryManager.GetModuleAsync(deviceID, moduleID);
}
...
有关更详细的解释和示例,请查看此Get started with IoT Hub module identity and module twin (.NET)。如果您问题仍然存在,则可以在azure-iot-sdk-csharp存储库上打开一个问题。
https://stackoverflow.com/questions/69753146
复制相似问题