我们正在对大量使用 EWS 的应用程序进行一些优化,其中一点是关于清理不再需要的订阅。我们使用的是 PullSubscription 类型,所以我做的第一件事自然是确保每个应该删除的订阅都有一个 Unsubscribe 方法调用。
令我惊讶的是,根据 Exchange 性能计数器,Unsibscribe 调用后的订阅数量仅减少了几个订阅而不是 0(出于测试目的,我为所有开放订阅调用 Unsubscribe)。就像我们有 200 个邮箱,每 3 个订阅(每个订阅不同类型的项目:电子邮件、约会等)相当于 600 个活动订阅。在取消订阅呼叫(全部 600 个)之后,计数器显示只有 10 个左右的订阅被删除。如果我们运行我们的应用程序几次,订阅数量每次都会增长。
那么 Exchange 是否以某种方式缓冲或延迟或对这些订阅进行任何处理?取消订阅电话就足够了,还是我应该做一些额外的事情来确保订阅被删除并且不会挂在服务器上吃资源?或者可能是关于服务器配置以及 EWS 服务如何工作的东西?
当然,EWS 文档在大多数其他情况下都如此直言不讳(这意味着只有基本的类参考,没有可能的问题解决方案,对解决问题没有任何用处)所以我希望这里有人能给我一些提示。