プルサブスクリプション(ExchangeService.SubscribeToPullNotifications()
)でメモリリークの問題が発見されたのは、Exchange Managed Web Services APIですか? PullSubscription.GetEvents()
を呼び出すと、ほぼすべてのポーリングコールでメモリの使用率が4Kに上昇します。私がメモリ使用量を抑えることができた唯一の方法は、すべての呼び出しの後でガベージコレクションを(GC.Collect()
経由で)強制することです。これは不要なパスです。EWSマネージAPI 1.1 - プルサブスクリプションメモリリーク
APIがほぼ1年間は変更されていないことに驚いています。
GC.Collect()を実行し続ける - Exchange API呼び出しがガベージコレクタによって使用された時間をマスクするので、OKです。しかし、コードに漏れがある可能性は非常に高いです。 – mozillanerd
私は、単一のサブスクリプションを作成し、5秒後に 'while(true)'でポーリングする単純なコンソールアプリケーションを作成することで、コードリークを排除しました。ただし、メモリが上昇し続ける(特に複数のサブスクリプションがある場合)。 – SliverNinja