【发布时间】:2011-12-12 19:57:29
【问题描述】:
有没有其他人发现 Exchange Managed Web Services API 中的 Pull Subscriptions (ExchangeService.SubscribeToPullNotifications()) 存在内存泄漏问题?当调用PullSubscription.GetEvents() 时,几乎每个轮询调用的内存利用率都会攀升 4K。我能够降低内存利用率的唯一方法是在每次调用后强制进行垃圾收集(通过GC.Collect())——这是一条不必要的路径。
看到 API 近一年没有变化,我感到很惊讶。
【问题讨论】:
-
继续执行 GC.Collect() - 没关系,因为 Exchange API 调用掩盖了垃圾收集器使用的时间。但是,您的代码很可能存在泄漏。
-
我通过创建一个简单的控制台应用程序来排除代码泄漏,该应用程序只创建一个订阅并在延迟 5 秒后在
while(true)中轮询它。但是 - 内存不断攀升(尤其是当您有多个订阅时)。
标签: c# exchange-server exchangewebservices ews-managed-api