通过 EWS API 访问 Office 365 日历时出错



我的合作伙伴在通过 EWS API 访问 Office 365 日历数据时开始遇到错误消息,对于某些 Office 365 租户最终用户,会收到以下错误消息:


存储中找不到指定的对象,无法连接到用户邮箱数据库 guid: 41a840ac-87c3-4a8b-93d8-e334353bd51d 的邮箱,因为 ExchangePrincipal 对象包含过时的信息。邮箱最近可能已移动。

通过 OWA 或 Outlook 但通过 EWS API 访问时不会发生此错误。它曾经工作正常,但问题开始出现在某些Office 365租户上,而不是所有租户上。社区网站 bwlow 中讨论了类似的问题,但我们无法获得解决错误的信息。

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_win10-mso_2016/connect-to-outlook-over-ews-or-eas-not-working/38513de8-56ff-4eec-ba36-26fa2da890d5?auth=1

要问的问题;

在什么场景或情况(例如修改使用 ID 或其他)下是否有任何信息可能导致此错误消息?有什么信息可以修复错误吗?

谢谢你,托诺里

创建 exchange 服务时,请尝试使用不同的版本,我们目前正在迁移到 365,但ExchangeVersion.Exchange2007_SP1工作而不是 2013(取决于您从哪个版本迁移)

ExchangeServiceexchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1)

这修复了以下问题:在存储中找不到指定的对象。无法连接到用户邮箱数据库 guid: #### 的邮箱,因为 ExchangePrincipal 对象包含过时的信息。邮箱最近可能已移动。

添加带有电子邮件地址X-AnchorMailbox标头为我们解决了这个问题:

X-AnchorMailbox: example@mailbox.com

更多信息: https://blogs.msdn.microsoft.com/webdav_101/2018/06/16/best-practices-important-and-critical-headers-for-ews/

最新更新