Yongwei,
Колин прав; по сути, вы участвуете в гонке против IIS, так как он перераспределяет пул приложений. Когда вы снимаете свой моментальный снимок процесса, вы либо превышаете порог памяти для повторного использования, либо проверки работоспособности воспринимают зависший процесс и инициируют его повторный запуск (возможно, из-за блокировки процесса ADPlus)
Вот как я бы изменил характеристики вашего пула приложений перед попыткой следующего захвата. Эти изменения вступают в силу только в течение времени, необходимого для захвата дампа:
- Отключение ограничений на рециркуляцию на основе памяти (физической и виртуальной)
- Отключение ограничения времени простоя (если оно включено)
- Отключение проверки связи и быстрой защиты от сбоев
В действительности: вам нужно отключить все функции, которые пытается , чтобы поддерживать пулы приложений в рабочем состоянии. Для захвата снимка памяти требуется время (как вы знаете).
Я бы также порекомендовал проверить ProcDump (http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx) от ребят из SysInternals. Он был выпущен только в прошлом месяце, и это немного облегчает захват памяти процесса. Статья об использовании его для захвата W3WP находится здесь : http://blogs.msdn.com/webtopics/archive/2009/08/08/using-procdump-exe-to-monitor-w3wp-exe-for-cpu-spikes.aspx
Надеюсь, это поможет!