从内部Exchange 2013迁移到Office365后的EWS ItemId

时间:2016-08-09 13:34:07

标签: exchange-server office365 exchangewebservices ews-managed-api

我们有一个连接到Exchange的应用程序,能够为一堆用户读取,创建,重新安排和取消日历条目。所有这些都是通过EWS完成的。要跟踪在Exchange中为以后的更新创建的事件,应用程序会将事件的ID存储在其数据库中。在不久的将来,IT计划将所有用户邮箱从内部部署Exchange 2013迁移到Office365。我们更新了我们的应用程序,以便它可以连接到Office365并执行其所有功能,但是有以下问题:

如果在Exchange 2013中创建了一个事件,然后将其迁移到Office365,那么该事件的EWS ID是否保持不变?如果没有,有没有办法将我们的应用程序中存储的ID与Office365事件相匹配?

1 个答案:

答案 0 :(得分:3)

  
    

如果在Exchange 2013中创建了一个事件,然后将其迁移到Office365,那么该事件的EWS ID是否保持不变?如果没有,有没有办法将我们的应用程序中存储的ID与Office365事件相匹配?

  

如果是EWSId,他们就不会保持不变,一旦迁移了约会,通常就无法在两者之间进行转换。存储EWSId通常不是最佳做法,因为约会可以作为正常流程的一部分进行删除和重新创建,这意味着将在https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx上更改有关更多信息的ID。

通常,最安全的做法是在迁移编写应用程序以在Calendar Item上生成自己的自定义属性之前。然后,在迁移之后,根据您创建的CustomId,使用新的Id来更新数据库,然后根据您创建的CustomId进行更新。

约会https://msdn.microsoft.com/en-us/library/ee157690(v=exchg.80).aspx上的GOID属性在创建后不会更改,因此可用于在邮箱中查找特定约会,这对于不同邮箱中的相同约会(即您在哪里)与多个与会者会面)。

另一件事是检查他们将要使用的迁移方法,例如混合迁移,这是最常见的方法,您不应该有任何问题,因为项目以原生格式移动,因此没有保真度损失。但是,如果使用该方法,某些第三方迁移产品可能无法复制customId。