Не удается отслеживать iisprocess на утечку в инструменте диагностики отладки - PullRequest
0 голосов
/ 06 октября 2010

У меня есть приложение ASP.NET, которое потребляет много памяти. Поэтому я хочу использовать инструмент диагностики отладки, чтобы попытаться найти, если есть утечка или что-то еще.

В DebugDiag на вкладке процесса я щелкаю правой кнопкой мыши по процессу w3wp.exe, и единственные опции, которые я получаю:

Завершить процесс
Копирование

Только на некоторых процессах я получаю больше опций:

Монитор на утечки
Создать полный userdump

Почему это? Это как-то связано с идентификацией рабочего процесса?

Может ли кто-нибудь помочь мне решить эту проблему, чтобы я мог отладить интересующий меня рабочий процесс?

1 Ответ

0 голосов
/ 06 октября 2010

Предполагается, что вы используете DebugDiag 1.1. Вам необходимо использовать правильную версию, соответствующую архитектуре процесса (есть 32-битная и 64-битная версии).

Чтобы проверить, является ли рабочий процесс вашего пула приложений 32-битным или 64-битным, перейдите по адресу:

Control Panel -> Administrative Tools -> Internet Information Services (IIS) Manager

Не открывать Internet Information Services (IIS) 6.0 Manager.

Откройте Advanced Settings для своего веб-сайта (ссылка находится на панели действий слева). Запишите имя Application Pool и нажмите Отмена.

Щелкните по узлу Application Pools в левой панели дерева навигации и щелкните правой кнопкой мыши на пуле приложений, указанном выше, выберите Advanced Settings.

Если пул приложений 32-битный, тогда для параметра Enable 32-bit Applications будет установлено значение true, в противном случае, если false, пул будет работать в 64-битном режиме.

Если пул приложений работает в 64-битном режиме, вам необходимо загрузить и установить 64-битную версию DebugDiag.

При запуске 32-разрядного DebugDiag столбец «32-разрядный» на вкладке процессов будет иметь «Да», чтобы указать, что процесс является 32-разрядным. Только эти процессы будут иметь опции контекстного меню «Отслеживать утечки» и т. Д.

Для получения дополнительной информации см. Блог Тесс Феррандез:

Захват дампов памяти для 32-разрядных процессов на компьютере x64

Если вы можете воспроизвести предполагаемую утечку памяти в 32-битном режиме, просто переключите пул приложений на 32-битный и используйте 32-битную версию DebugDiag. К сожалению, и 32-битная, и 64-битная версии не могут одновременно находиться на одной машине.

Обновление:

DebugDiag 1.1 x64 поддерживает только особенности анализа. Есть новый версия в бета-версии, которая разрешает все функциональность 32bit версия. Хотя не доступно непосредственно вы можете запросить копию от их команда поддержки, см. следующее ссылка для получения дополнительной информации:

Отладка Diag 1.2 (бета)

...