IIS でホストされている WCF アプリケーションがあります ( で記述C#/.Net 4
)。時間の経過とともに、プロセスのハンドル カウントはほぼ直線的に増加します (プロセスがリサイクルされる前に 30,000 まで増加します)。SysInternals Process Explorer によると、プロセスが持つハンドルの大部分はThread
. ただし、パフォーマンス モニターによると、スレッド数はほぼ一定 (40 前後) のままです。
明らかに、私は何か間違ったことをしており、漏れていThread Handles
ます。Thread Handle
ただし、このコンテキストでa が何であるかは正確にはわかりません。これはスレッドへのハンドルであると想定していましたが、スレッドの数は一貫しているため、ハンドル数がどのように増加しているかはわかりません。そして、スレッド自体が消えている間、スレッドへのハンドルを保持する方法は考えられません。さらに、私は明示的に新しいスレッドを作成していません (私はThreadPool
場所で使用しています)。
明らかに、私は何かが欠けています。しかし、何?