2008-10-29 3 views
5

Si j'ai un service Windows sur un serveur, quelle est la «meilleure pratique» pour mettre à jour le service? (dis qu'il y avait un bug, ou que je devais ajouter plus de fonctionnalités).Processus de mise à jour d'un service Windows? Automatisé ou manuel?

Y a-t-il un moyen pour arrêter le service, le patcher et le faire fonctionner de manière plus automatisée?

(tous les liens avec le code serait génial)

Répondre

1

Eh bien, vous pouvez toujours la version du programme d'installation (si vous avez utilisé un) et exécutez que, de mon expérience, il recouvre les anciennes versions avec la plus récente.

Ou vous pouvez simplement arrêter le service, copier dans le nouveau fichier .exe (et les dépendances le cas échéant) et le redémarrer. Cela pourrait être fait avec des scripts et les fonctions de démarrage/arrêt NET que j'imagine.

Je suis sûr qu'il ya une meilleure façon de le faire que si ce ...

0

InstallShield prend en charge les services Windows. Tirer parti des installateurs rendra votre tâche beaucoup plus simple.

1

Dépend de la façon dont votre service est écrit - EXE monolithique - vous devrez l'arrêter et le redémarrer en utilisant un processus de choix, par ex. Installateur, Script + Service Control, lot et NET STOP/START etc.

Si vous structurez un peu différemment, par ex. bootstrap EXE chargeant votre implémentation de service en tant que modules pouvant être déchargés/rechargés, vous pouvez avoir une conversation différente. C'est bien sûr un peu plus compliqué.

J'ai eu un certain succès en C# avec une solution d'hébergement comme celui-ci, une conversation similaire ici:

I want my C# Windows Service to automatically update itself