Question

Je besoin d'une application de fond pour appuyer ma demande client, ce qui devrait toujours fonctionner sur la machine client quelle que soit la principale application cliente est en cours d'exécution ou non.

service Windows a été mon premier choix, mais les problèmes que je face à Windows Services sont les suivants:. Facilité de contrôle sur les fenêtres service à travers l'application principale du client, la libération et l'installation des correctifs au service Windows et le dépannage si service Windows ne parvient pas à exécuter

Alors, je commencé à penser des alternatives au service Windows et constaté qu'une application Windows Forms sans formes visibles peuvent le faire pour moi. Cette application invisible devrait commencer par le démarrage du système et le maintenir tout le temps, faire tout le travail qu'un service Windows ferait. Mais avant d'aller plus loin dans le développement, je veux explorer les avantages et les inconvénients de cette approche.

Toutes les suggestions / commentaires sur cette approche?

Était-ce utile?

La solution

Vos besoins sont plus adaptés pour le service Windows. L'avantage principal avec service Windows est qu'il commencera dès que le système arrive, quel que soit quiconque est connecté dans le système ou non.

Pour trier les problèmes de déploiement, vous construisez votre logique métier dans l'assemblage séparé et appeler les fenêtres de la fonction nécessaire Withing service. De cette façon, vous pouvez déployer tout l'ensemble modifié.

l'application Winform avec la forme invisible ne servira pas le but. HTH

Autres conseils

Ce n'est pas possible. les applications en mode utilisateur doit être démarré par un utilisateur, et ne va pas continuer à exécuter lorsque l'utilisateur se déconnecte. C'est le but de l'événement SessionEnding: pour vous permettre de fermer votre application grâce lorsque l'utilisateur se déconnecte ou l'ordinateur est en cours d'arrêt. Vous ne pouvez pas commencer quelque chose au démarrage du système et le faire fonctionner tout le temps.

Vous avez besoin d'un service Windows pour cela. Mais vous devez être conscient que sous Windows Vista et versions ultérieures, un service ne peut pas interagir directement avec l'utilisateur. Ils courent dans un processus séparé et sont limités d'afficher leur propre interface utilisateur. On ne sait pas exactement de la question quels sont vos besoins, mais cela est une limitation importante d'un service Windows qui mérite d'être examinée. Une bonne conception ne devrait vraiment pas besoin, mais il y a apparemment beaucoup de gens à qui ce nouveau comportement plus sûr est une véritable surprise. Je l'explique plus en détail dans les réponses liées à cette question et cette autre question .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top