最近、アプリケーションが解放されないメモリを消費しているように見えることに気付きました。CLRProfilerでプロファイリングした後、使用しているCastleWindsorコンテナーがオブジェクトを保持していることがわかりました。これらのオブジェクトは、構成xmlのlifestyle="transient"属性で宣言されます。
に明示的な呼び出しをIWindsorContainer.Release(hangingObject)
行うと、その参照が削除されることがわかりました。
これは問題を引き起こしていますが、一時的なライフスタイルオブジェクトでCastleWindsorが参照を保持し、効果的にリークを作成するとは思っていませんでした。すべての適切な場所に明示的なRelease呼び出しを挿入することは、かなり平凡でエラーが発生しやすいタスクになります。
この問題を見たことがありますか、それを回避する方法について何か提案はありますか?