代码之家  ›  专栏  ›  技术社区  ›  Colin Desmond

更新同步失败

  •  0
  • Colin Desmond  · 技术社区  · 8 年前

    我正在尝试更新边缘设备的双模块。我现在可以检索模块的设备孪生兄弟,但无法将更新后的所需属性保存回物联网中心。

    var moduleTwin = await registryManager.GetTwinAsync("DeviceId", "ModuleId");
    
    moduleTwin.Properties.Desired["key"] = "value";
    
    var updatedTwin = await registryManager.UpdateTwinAsync("DeviceId", moduleTwin, moduleTwin.ETag)
    

    当这个运行时,我得到以下异常

    enter image description here

    其中“DeviceId”是用红色模糊的值。

    我试过使用设备的ETag,但这只是更新了设备的twin,我试过使用ModuleId,而不是DeviceId,这会引发一个DeviceNotFoundException。

    如何在这里更新ModuleTwin?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Rita Han    8 年前

    看来 registryManager.UpdateTwinAsync 只能更新设备twin。所以当你用边缘设备双Etag代替 moduleTwin.ETag ,操作将成功。您可以检查您的边缘设备,所需更新的属性在设备孪生而不是模块孪生下。

    通过Azure门户更新模块twin似乎也不起作用。

    这是一个 similar issue 关于这一点,在Azure IOT SDK for C上,你可以监控它的更新。

    推荐文章