Восстановление приложений - PullRequest
       13

Восстановление приложений

2 голосов
/ 10 декабря 2008

Вы использовали API восстановления приложений с Vista?

http://msdn.microsoft.com/en-us/library/aa373347(VS.85).aspx

Считаете ли вы их надежными и с которыми легко работать?

Я читаю некоторые из документов, и, кажется, что мой собственный документ может быть лучше, потому что я могу сделать свое решение совместимым с XP. Кто-нибудь пытался написать свой собственный? Есть ли что-то, что могут предложить нативные методы, которые нельзя легко воспроизвести вручную? Каковы некоторые потенциальные подходы для написания этого типа решения, я чувствую, что мне может понадобиться фоновая служба, работающая для контроля работоспособности моего приложения, это единственный способ?

Ответы [ 2 ]

2 голосов
/ 17 января 2009

Было бы полезно, если бы вы описали, почему вам нужно следить за ним.

Работает ли без присмотра без графического интерфейса? Тогда вы можете создать службу Windows вместо. Есть опции перезапуска для служб уже в XP.

Это приложение с графическим интерфейсом, которое предоставляет некоторые фоновые сервисы, даже если пользователь отсутствует? Попробуйте разделить его на службу Windows (которая должна выполняться постоянно) и приложение с графическим интерфейсом, которое может аварийно завершить работу, не влияя на работу службы.

Или вы пишете приложение "киоск", которое не может рассчитывать на то, что пользователь перезапустит его?

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

Чтобы отслеживать зависания приложений, попросите ваше реальное приложение «пинговать» оболочку через равные промежутки времени (используя таймер). Если оболочка не получает пинг в течение определенного времени, она может убить и перезапустить реальное приложение.

Поскольку обертка мала, риск ее падения также низок. Но если это проблема для вас, реальное приложение, вероятно, может контролировать оболочку в обратном порядке.

0 голосов
/ 10 декабря 2008

Единственный способ - иметь службу мониторинга приложения.

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

Фоновая служба может использовать WMI (работает на XP, Vista и т. Д.) Для мониторинга приложения. Когда он запускается, сколько памяти он использует, когда закрывается и т. Д.

...