Записать дамп с помощью adplus.vbs – дождаться завершения работы отладчика?

StackOverflow https://stackoverflow.com/questions/1966792

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть веб-приложение, которое иногда зависает.Я хочу выяснить причину, и мне нужно получить дамп памяти процесса, когда он зависает.

Итак, моя идея состоит в том, чтобы контролировать веб-сайт: когда я обнаруживаю зависание, я хочу запустить сценарий .bat, который записывает дамп памяти, затем запускает IISRESET, чтобы перезапустить, чтобы сайт снова начал отвечать.

Моя проблема в том, что adplus запускает другой процесс (cdb.exe) и немедленно возвращается.Мне нужно дождаться завершения работы cdb.exe, прежде чем я смогу запустить IISRESET.Есть ли способ сделать это в пакетном сценарии?Или могу ли я указать в командной строке adplus, что он не должен возвращаться до тех пор, пока не будет собран дамп памяти?

Это было полезно?

Решение

Что касается второй части вашего вопроса, то ответ положительный:вы можете (1) указать время ожидания в командной строке (при условии, что у вас есть доступ к нему и его изменение);и (2) дождаться завершения процесса в пакетном файле.

В простейшей форме выполните

(1) использовать START /WAIT cdb parms вместо того, чтобы просто cdb parms

(2) попробовать FOR /F "tokens=1,2" %a in ('TASKLIST ^| FIND /I "cdb.exe"') DO @ECHO %a %b и замените ECHO на нужную команду.

Другие советы

Чтобы создать дамп памяти вашего веб-приложения, Средства диагностики отладки Microsoft ваш лучший вариант.

Вы можете создать правило «IIS Hang», отслеживающее определенный URL-адрес и создающее дамп памяти всякий раз, когда в течение определенного количества секунд не получен ответ.

Инструменты диагностики отладки не помогут вам перезапустить IIS (или пул приложений), но в целом для этого должно быть достаточно встроенных параметров перезапуска пула приложений.Если вы убедитесь, что для вашего пула приложений (на вкладке «Здоровье») установлено значение «Включить пинг», а также правильно настроили другие параметры работоспособности/переработки, ваше приложение должно продолжать отвечать, что бы ни случилось.

Если нет, отслеживание выходной папки с аварийными дампами из правила DebugDiag «IIS Hang» и перезапуск IIS при каждом появлении новых файлов определенно должны помочь...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top