使用Office 365日历文件夹的强制订阅ErrorReadEventsFailed
时,SendNotification
请求中收到很多消息。此错误实质上意味着无法再找到订阅,并且服务器不应再期望新的通知。
检查Microsoft推荐的错误处理,解决方案是使用自动发现来重新发现ExternalEwsUrl或EwsPartnerUrl,并创建一个新的订阅。
使用Office365,结合使用OAuth2服务帐户似乎几乎无法实现自动发现服务,因此我一直在使用它https://outlook.office365.com/EWS/Exchange.asmx
作为EWS的主要端点。
但是,当我尝试为特定的日历文件夹创建新的订阅时,总是出现一般500 ErrorNoRespondingCASInDestinationSite
错误:
Exchange Web服务当前不适用于此请求,因为目标站点中的所有客户端访问服务器都无法处理该请求。
奇怪的是,这仅在收到初始ErrorReadEventsFailed
错误后立即发生。如果我再尝试30秒,请求将顺利通过。
经过研究后,似乎大多数用户发现确保X-AnchorMailbox
为服务帐户希望模拟的用户正确设置标题是有帮助的。我仔细检查了此标头,它确实是在重新订阅请求中发送的。
此问题可以通过指数退避解决方案解决,也可以仅重试X次直到请求通过为止。在我看来,当订阅“丢失”时,O365服务需要时间来更改Exchange服务器的DNS(这是我唯一能想到的)。
任何帮助将不胜感激!