C# EWS订阅“;“脱落”;

C# EWS订阅“;“脱落”;,c#,exchange-server,exchangewebservices,C#,Exchange Server,Exchangewebservices,我正在开发一个同步系统,它将Outlook与另一个系统同步 我在Exchange 2013服务器上订阅了大约600个邮箱日历 订阅完成后,我将用户拉入整个邮箱,以执行与其他系统的完全同步。这很有效 现在问题来了: 当更改日历时,600个邮箱中的很大一部分没有向系统发送推送通知 你们有没有遇到过类似的问题,或者知道为什么会发生这种情况 是否可以监视Exchange服务器上的某些内容,以了解有关订阅的信息 非常感谢您的帮助。您是否收到“心跳”通知并跟踪是否有遗漏?EWS推送订阅可能会随着时间的推移被

我正在开发一个同步系统,它将Outlook与另一个系统同步

我在Exchange 2013服务器上订阅了大约600个邮箱日历

订阅完成后,我将用户拉入整个邮箱,以执行与其他系统的完全同步。这很有效

现在问题来了: 当更改日历时,600个邮箱中的很大一部分没有向系统发送推送通知

你们有没有遇到过类似的问题,或者知道为什么会发生这种情况

是否可以监视Exchange服务器上的某些内容,以了解有关订阅的信息


非常感谢您的帮助。

您是否收到“心跳”通知并跟踪是否有遗漏?EWS推送订阅可能会随着时间的推移被Exchange“丢失”,如果您的代码没有监视未获取其状态事件的MBs,则您将错过更改通知。如果你错过了一个状态事件(通常情况下是很轻松的,例如,如果你期望在5分钟内听到心跳,不要真的认为它丢失到第六分钟),你需要重新订阅MB。p> 您知道exchange服务器上的限制设置吗?它们可以限制打开的连接或订阅的数量


您应该能够增加EWS的诊断日志记录,然后任何错误、订阅警告都将记录到事件日志中。我没有这样做。心跳事件是否可以使用EWS设置?它们基本上是由SubscribeToPushNotifications()调用设置的,该调用使用“frequency”整数指定间隔(以分钟为单位)。假设您将其设置为5。因此,在订阅或最后一次通知后的5分钟内,如果没有任何事件通知您的侦听URL,您将获得一个状态事件,它本质上是一个心跳。因此,您必须在用于管理每个订阅的任何对象上设置时间戳。当收到任何通知/心跳信号时,设置时间戳。然后定期检查对象是否有早于(比如)6分钟的时间戳。