我们正在使用 EWS 托管 API,该 API 在给定时间间隔后轮询 MS Exchange 以获取新邮件。每次调用轮询调用 ( PullSubscription.GetEvents()
) - Microsoft 的 API 无法正确处理NetworkStream
并导致内存按比例增加。这以前在这里讨论过,但从未解决。使用 ANTS Profiler,我们能够确定哪些对象在内存中持续增长并隔离问题。
现在问题已被隔离 - 有没有办法处理在我们没有参考的外部 API 中创建的 NetworkStream?GC.Collect() 似乎没有处理它,因为它仍然有一个活动引用。我们可以做些什么来清理悬空引用?是否有一些我们可以用来强制清理他们有缺陷的 SDK 的包装器?