У меня есть небольшая служба WCF, которая выполняется на компьютере XP с 256 мегабайтами оперативной памяти, работающей в ВМ.
Когда я делаю запрос (с размером запроса приблизительно 5 МБ) к этой услуге, я всегда получаю следующее сообщение в журнале событий:
aspnet_wp.exe был переработан, поскольку потребление памяти превысило 153 МБ (60 процентов доступной оперативной памяти).
и сбой вызова с ошибкой 500.
Я пытался увеличить лимит памяти до 95%, но он по-прежнему занимает всю доступную память и терпит неудачу таким же образом.
Похоже, что-то не так с моим приложением (я не использую байтовые буферы [] и, возможно, что-то еще), но я не могу найти основную причину такого чрезмерного использования памяти.
Профилирование показало, что все объекты CLR, которые у меня есть в памяти вместе, не занимают столько места.
Выполнение анализа дампа с помощью windbg показало ту же ситуацию - ничего особенного в куче объектов.
Как я могу узнать, что способствует такому чрезмерному использованию памяти?
Есть ли способ сделать дамп непосредственно перед повторной обработкой процесса (при пиковой нагрузке)?