次のシナリオがあります。
WCF Windows サービス 1
- 完了する作業がある場合に WCF サービス 2 を呼び出します。
- 結果でデータベースを更新します
WCF Windows サービス 2
Managed Extensibility Framework (MEF) を使用して、新しいアプリ ドメインでパーツ (プラグイン) を動的に構成します。
その後、プラグインは Watin (オープン ソースの .net テスト フレームワーク) のインスタンスを作成します。Watin は新しい IE プロセスを作成し、WWW ナビゲーションを実行し、スクリーン スクレイピングを行い、スクリーン ショットを撮ります。
すべてが呼び出し元に返されます。
WCF Windows Service 2 で段階的なメモリ リークが発生しており、数日おきに再起動する必要があります。perfmon を使用して開発環境で (単独で) サービスをプロファイリングしたところ、メモリ リークが見られないようです。.Net Memory Profiler を使用しようとしましたが、決定的な結果が得られていないようです。IDispose が実装され、呼び出されています。
オブジェクト参照を保持し、IDispose の呼び出しを妨げている可能性があるのは、2 つの WCF Windows サービス間の相互作用であると考え始めています。他の誰かがこの動作を見たことがありますか? または私は間違った木を吠えていますか?
そして誰かが言及する前に...私は何が行われているのか理解しています...