EWS 订阅“下降”
Posted
技术标签:
【中文标题】EWS 订阅“下降”【英文标题】:EWS subscriptions "falling off" 【发布时间】:2015-02-04 10:02:29 【问题描述】:我正在开发一个同步系统,它将 Outlook 与另一个系统同步。
我在 Exchange 2013 服务器中订阅了大约 600 个邮箱日历。
订阅完成后,我会拉取用户的整个邮箱,以执行与其他系统的完全同步。这很好用。
现在的问题: 当日历发生更改时,600 个邮箱中有很大一部分没有向系统发送推送通知。
你们有没有遇到过类似的问题,或者知道为什么会这样?
是否可以监控 Exchange 服务器上的某些内容,从而告诉我有关订阅的信息?
感谢任何帮助。
【问题讨论】:
您应该能够增加 EWS technet.microsoft.com/en-us/library/dd335139(v=exchg.141).aspx 的诊断日志记录,然后任何错误、订阅警告都将记录到事件日志中 【参考方案1】:您是否收到“心跳”通知并跟踪是否有遗漏?随着时间的推移,EWS 推送订阅可能会被 Exchange“丢失”,如果您的代码没有监视未获取其状态事件的 MB,那么您将错过更改通知。如果您错过了状态事件(通常最好小心翼翼,例如,如果您希望在 5 分钟内听到心跳,在第 6 分钟之前不要真正认为它丢失了),您需要重新订阅 MB。
【讨论】:
不,我没有这样做。心跳事件是否可以使用 EWS 设置? 它们本质上是由 SubscribeToPushNotifications() 调用使用“频率”整数设置的,该整数指定以分钟为单位的间隔。假设您将其设置为 5。因此,在订阅或最后一次通知后的 5 分钟内,如果没有事件通知您的侦听 URL,您将收到一个状态事件,这本质上是一个心跳。因此,您必须在用于管理每个订阅的任何对象上设置时间戳。当任何通知/心跳进来时,设置时间戳。然后定期检查您的对象是否有早于 6 分钟的时间戳。【参考方案2】:您知道 Exchange 服务器上的限制设置吗?他们可以限制打开的连接或订阅的数量。
https://msdn.microsoft.com/en-us/library/office/dn458789%28v=exchg.150%29.aspx#bk_throttling
【讨论】:
以上是关于EWS 订阅“下降”的主要内容,如果未能解决你的问题,请参考以下文章