Мониторинг запущенных приложений в .NET? - PullRequest
4 голосов
/ 08 апреля 2011

У нас есть несколько приложений, которые работают на сервере Windows 2003/2008.Некоторые из этих приложений представляют собой файлы JAR Java, которые запускаются с Scheduled Task с помощью файла app.cmd.

Другие "большие", такие как SQL Server и IIS.

Я хотел бы написать приложение (или службу, на самом деле), которое просто отслеживает эти программы и проверяет, запущены ли они илинет.

Это немного за то, что я делал раньше.О, это должно быть написано на C #.

Я думал о каком-то типе «сердцебиения», чтобы каждые несколько минут я проверял, запущен ли поток (снова, новая расширенная многопоточность), и еслиИтак, отправьте сообщение «Все в порядке» (используя SMTP или что-то в этом роде).

Любые советы, с чего начать?

Спасибо за любые предложения.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Вероятно, вам следует обрабатывать каждое приложение в каждом конкретном случае, например, хотя вы можете просто проверить наличие процесса SQL Server, лучше выполнить запрос, который (например) проверяет наличие данной базы данных на сервере.

Точно так же вы можете выполнить простой HTTP-запрос к серверу IIS, чтобы проверить, правильно ли настроены разрешения и т. Д ...

Очевидно, что способ тестирования ваших процессов Java будет зависеть от того, что они делают, хотя вы все равно можете просто проверить, запущен ли процесс (имейте в виду, что, если они работают как служба, они могут работать внутри одной из них). процессов svchost.exe - это не относится к запланированным задачам).

2 голосов
/ 08 апреля 2011

Вы можете использовать Process.GetProcesses():

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

...