从本地 Exchange 2013 迁移到 Office365 后的 EWS ItemId

EWS ItemId after migration from in premises Exchange 2013 to Office365

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

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

If an event is created in Exchange 2013 and then it is migrated to Office365, will the event's EWS id stay the same? If not, is there a way to match the ids stored in our app to the Office365 events?

如果是 EWSId 否,它们将不会保持不变,并且一旦您迁移了约会,通常将无法在两者之间进行转换。存储 EWSId 通常不是最佳做法,因为约会可以作为正常过程的一部分被删除和重新创建,这意味着 Id 将在 https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx.

上更改更多信息。

通常最安全的做法是在迁移之前编写一个应用程序以在日历项目上生成您自己的自定义 属性。然后在迁移之后写一些东西,根据你创建的 CustomId 使用新的 Id 更新你的数据库。

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

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