几天前出现了 EWS 对 Office365 公共文件夹的请求问题

问题描述

大约 2 天前,我们在通过 EWS API 访问 Office 365 公共文件夹时遇到了 2 个问题。
这里描述了一个问题 https://github.com/OfficeDev/ews-managed-api/issues/263
枚举公用文件夹时:

发生内部服务器错误。操作失败。无法将“Microsoft.Exchange.Data.Storage.PublicFolderSession”类型的对象转换为“Microsoft.Exchange.Data.Storage.IMailBoxSession”类型。

谁能解释一下这是什么意思?以及为什么现在发生 - 因为之前一切正常。

Office 365 公共文件夹上 EWS PullSubscriptionRequest 的第二个问题。
更确切地说,在下一次调用 GetEvents 时会发生问题 - 它返回 ErrornorespondingCASInDestinationSite
早些时候一切正常,这发生在 2 天前。
我开始研究并发现了这样的信息
https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-maintain-affinity-between-group-of-subscriptions-and-mailbox-server?redirectedfrom=MSDN
他们描述了对于通知订阅,必须使用 HTTP 标头 X-AnchorMailBox、X-PreferServerAffinity 和 X-BackEndOverrideCookie。
但是我们已经使用 X-AnchorMailBox - 我们将它与节点一起使用并将其设置为相同的值 - .
但对于 ExchangeImpersonation,PrimarySmtpAddress 始终是用户邮箱地址,而不是 PublicFolder。 然后我也找到了这样的信息
https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-route-public-folder-hierarchy-requests
所以我尝试在 GetEvents 中用作 X-AnchorMailBox 请求来自节点中自动发现响应的值 Account/PublicFolderinformation/SmtpAddress - 这个值看起来像 AllPublicFolders?Office365?_fdbae65d@... 在此之后,错误 ErrornorespondingCASInDestinationSite 消失了,但没有返回任何通知。 我只使用 X-AnchorMailBox -> 所以我也想尝试 X-PreferServerAffinity 和 X-BackEndOverrideCookie,因为它们描述但不返回任何 X-BackEndOverrideCookie。

所以我对第二个问题有几个问题:

  1. 我是否理解 ErrornorespondingCASInDestinationSite 在 2 天前开始发生的错误,因为用户邮箱(我们用于连接到 Office 365 的帐户)的 CAS 服务器已更改,现在与 PublicFolder 不同?
  2. 如何正确地形成对公共文件夹的 EWS 请求
    a) 是否需要 ExchangeImpersonation?如果是 - 要使用什么地址(我们使用连接到 Office 365 的用户的 SMTP 地址)?
    b) 在 X-AnchorMailBox 中使用什么地址?
    c) X-AnchorMailBox 是否足够(因为PullSubscriptionRequest 不返回X-BackEndOverrideCookie)
    d) 如果我正确使用这 2 个 EWS 请求 - PullSubscriptionRequest 和 GetEvents - 即使用
    ExchangeImpersonation/ConnectingSID/PrimarySmtpAddress = admin365@... 和 X-AnchorMailBox = AllPublicFolders?Office365?_fdbae65d@... 为什么我停下来接收任何通知

    非常感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)