Statut de service «perpétuel»

J’ai écrit un service Windows en C # qui convertit les fichiers wav en mp3, puis les stocke sur un serveur distant. Sur ma plate-forme de développement (OS: WinXP SP3), le service démarre correctement et fonctionne comme prévu.

Lorsque je l’ai installé sur la machine de production (OS: WinServer 2000), il ne démarre pas au démarrage du service dans les délais impartis et rest dans un état de “démarrage” constant. Le programme fonctionne clairement car les fichiers sont convertis et transférés.

Mon intuition est que le problème vient du composant de timer. Je pense que sur le poste Windows 2000 Server, la timer peut être à l’origine du système pour qu’il enregistre le programme en tant que “Démarrage”.

Est-ce qu’il manque quelque chose à propos de Windows Server 2000?

Je ne suis pas familier avec l’écriture de services dans .NET, mais en général, le fil utilisé pour démarrer le service et signaler son statut initial ne doit pas être le même que celui qui effectue le travail réel. Le service doit générer un thread de travail afin que le point d’entrée puisse renvoyer rapidement l’état au SCM.