一定の間隔が経過した後、MSExchangeをポーリングして新しいメールメッセージを検出するEWSマネージAPIを使用しています。ポーリング呼び出しを呼び出すたびに(PullSubscription.GetEvents()
)-Microsoft APIは適切に処理できず、NetworkStream
それに比例してメモリが増加します。これは以前にここで説明されましたが、解決されることはありませんでした。ANTS Profilerを使用して、メモリ内で継続的に成長しているオブジェクトを特定し、問題を特定することができました。
問題が特定されたので、参照のない外部APIで作成されたNetworkStreamを破棄する方法はありますか?GC.Collect()はまだアクティブな参照を持っているため、それを破棄していないようです。ぶら下がっている参照をクリーンアップするために何ができますか?バグのあるSDKを強制的にクリーンアップするために使用できるラッパーはありますか?