2008-12-10 4 views
2

Avez-vous utilisé les API de récupération d'application avec Vista?Récupération d'application

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

-vous les trouver pour être fiable et facile à travailler? Je suis en train de lire quelques-uns des docs et il semble que rouler le mien pourrait être une meilleure façon de faire car je peux rendre ma solution compatible avec XP. Quelqu'un a-t-il pris le risque d'écrire le sien? Y a-t-il quelque chose que les méthodes indigènes peuvent offrir qui ne peuvent pas facilement être reproduites à la main? Quelles sont les approches possibles pour écrire ce type de solution, je pense que j'ai besoin d'un service d'arrière-plan pour surveiller la santé de mon application, est-ce la seule façon?

Répondre

2

Il serait utile que vous décriviez pourquoi vous avez besoin de le surveiller.

Est-il exécuté sans surveillance sans interface graphique? Ensuite, vous pouvez créer un service Windows à la place. Il existe des options de redémarrage pour les services déjà dans XP.

Est-ce une application graphique, qui fournit des services d'arrière-plan même si l'utilisateur est absent? Envisagez de le séparer en un service Windows (qui doit être exécuté en permanence) et une application graphique, qui peut se bloquer sans affecter l'opération du service. Ou écrivez-vous une application "kiosque" qui ne peut pas compter sur un utilisateur pour le redémarrer?

Vous pouvez écrire une petite application "wrapper" qui lance simplement votre application réelle et attend qu'elle sorte. Quand il sort, examinez par ex. le code de sortie pour décider s'il s'est écrasé ou est sorti régulièrement.

Pour surveiller les applications bloque, ayez votre application réelle "ping" l'enveloppe à intervalles réguliers (en utilisant une minuterie). Si le wrapper ne reçoit pas de ping pendant un certain temps, il peut tuer et redémarrer l'application réelle.

Étant donné que l'emballage est petit, le risque qu'il se bloque également est faible. Mais si c'est un problème pour vous, l'application réelle pourrait probablement surveiller l'emballage à l'envers.

0

Le seul moyen est d'avoir un service de surveillance de l'application.

La raison en est que si l'application a une erreur vraiment fatale que l'application elle-même ne peut pas gérer, alors quelque chose à l'extérieur de celle-ci doit effectuer l'opération de récupération.

Le service d'arrière-plan peut utiliser WMI (fonctionne sous XP, Vista, etc.) pour surveiller l'application. Quand il commence, combien de mémoire il utilise, quand il se ferme, etc.

Questions connexes