Проверьте, выдало ли программа исключение - PullRequest
3 голосов
/ 22 марта 2012

Я работаю над программой мониторинга состояния для своей компании, и нам нужно знать, зависает ли процесс на удаленном компьютере из-за не отвечающего (что я могу сделать) или оно выдает необработанное исключение.Я пробовал несколько вещей, от проверки использования процессором процесса до проверки того, что процесс простаивал.Ничто на самом деле не было надежным.Есть какой-либо способ сделать это?Все программы, которые мы будем отслеживать, работают на .NET 3.5 или 4.0.

Ответы [ 4 ]

1 голос
/ 23 марта 2012

Спасибо за ответы, ребята, у меня есть достойная работа для того, что мне нужно:

После небольшого исследования я обнаружил, что .NET-программа запускает 4 потока при запуске. Ни одна из программ, которые я здесь отслеживаю, не открывает новые темы. После некоторого тестирования я также обнаружил, что сообщение об исключении открывается в новом потоке и приводит к тому, что загрузка ЦП для программы падает до 0. Итак, я проверяю оба эти условия:

if CPU = 0 and threadCount > 4

Скорее всего, было сгенерировано исключение. Потому что, почему еще программа могла бы сидеть там с 0 CPU и более чем 4 потоками? Насколько я сейчас вижу, другой причины нет.

1 голос
/ 22 марта 2012

Может ли проверка Журнала событий (Система / Безопасность) помочь вам с источником события в качестве отслеживаемого процесса?

1 голос
/ 22 марта 2012

Вы можете попытаться отслеживать журнал событий в системе, в которой запущен процесс. Когда процесс генерирует исключение, которое не обрабатывается вручную, здесь делается запись с процессом и некоторыми подробностями об ошибке.

В стеке есть еще несколько вопросов, касающихся этого вопроса.

перехватить другое необработанное исключение процесса
Как перехватить исключения из процессов в C #

1 голос
/ 22 марта 2012

Ответ будет намного проще, если вы будете контролировать источник этих приложений.

Способ, которым мы справляемся с этим сценарием, заключается в том, что контролируемые приложения периодически записывают свой статус в центральную базу данных. Затем приложение мониторинга регулярно проверяет состояние в этих таблицах, и, если состояние не обновляется в течение определенного периода времени (например, 2 минуты), генерируются оповещения.

Это помогает нам выявлять не только проблемы приложений, но также проблемы с подключением и неожиданные перезагрузки компьютера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...