Диагностика утечек памяти в управляемом приложении (по крайней мере на начальном этапе) очень похожа на диагностику утечек памяти в любом другом приложении.
Способ, которым я обычно подхожу к этим проблемам, состоит в том, чтобы заставить процесс утекать большой объем памяти, взять полный дамп процесса, а затем изучить дамп, чтобы увидеть, что использует больше всего памяти. Например, если ваш процесс имеет нормальные / начальные личные байты ~ 20 МБ, но вы можете заставить свой процесс утекать память до тех пор, пока у него не будет ~ 200 МБ частных байтов, тогда есть большая вероятность, что ~ 180 МБ этой памяти будет утечка - вообще там, где больше всего выделено памяти, вы должны искать.
У Microsoft есть очень полезный инструмент под названием DebugDiag - изначально разработанный для использования при диагностике утечек памяти в IIS, это очень универсальный инструмент, который очень удобен при работе с проблемами памяти. Если вы дадите ему аварийный дамп, он проведет некоторый анализ и должен (по крайней мере) сказать вам, какой модуль выделил всю эту память, тогда вы можете начать более конкретно смотреть на то, как этот модуль используется.