Мы используем EWS Managed API, который опрашивает MS Exchange на предмет новых почтовых сообщений через заданный интервал времени. При каждом вызове опроса (PullSubscription.GetEvents()
) - Microsofts API не может правильно утилизировать NetworkStream
и приводит к пропорциональному увеличению памяти. Эта проблема ранее обсуждалась здесь, но так и не была решена. Используя ANTS Profiler, мы смогли определить, какие объекты постоянно увеличивали память, и изолировать проблему.
Теперь, когда проблема изолирована - есть ли способ утилизировать NetworkStream, созданный во внешнем API, на который у нас нет ссылки? GC.Collect(), похоже, не утилизирует его, поскольку у него все еще есть активная ссылка. Что мы можем сделать, чтобы очистить висящую ссылку? Есть ли какая-то обёртка, которую можно использовать для принудительной очистки их глючного SDK?