Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows Serveur
Windows Serveur Forum d'entraide professionel pour Windows Serveur : NT, 2000, 2003 , Longhorn...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/06/2007, 17h37   #1
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Par défaut Problème de transformation d'une application en service

Bonjour, j'espère que c'est le bon forum pour poster ma requête .

Alors voila, mon problème est le suivant :

J'ai réussi à convertir une application en service grâce à instsrv et srvany, j'effectue la configuration qu'il faut dans la base de registres et au niveau des services (Panneau de configuration->Outils d'administration->Services, mis sur automatique, interaction avec le desktop, LocalSystem, etc...).

Je redémarre, je me loggue, le service srvany se lance bien ainsi donc que mon application, tout va pour le mieux.

MAIS VOILA le problème, quand je me déconnecte, et que je me reconnecte, srvany.exe est bien dans le gestionnaire des tâches/Processus, mais mon application qui devrait être lancée ne l'est plus. Elle a été "tuée". Je redémarre l'ordi, et ça refonctionne, le hic c'est qu'il faudrait que cela puisse tourner tout le temps en "tâche" de fond, même quand il y a un utilisateur connecté ou non.

Existerait-il un moyen (via la base de registres peut être) d'imposer à ce que mon appli ne soit tuée en fait que lors d'un arrêt de la machine.

Pour information j'ai utilisé le tutorial à l'adresse suivante pour effectuer la transformation appli->service :

http://bellamyjc.org/fr/windowsnt.html#serviceNT

En espérant que je ne vous pose pas une colle trop difficile .

Merci d'avance.

Zocco
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 15h20   #2
Membre chevronné
 
Inscription : décembre 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2002
Messages : 1 057
Points : 779
Points : 779
Envoyer un message via MSN à portu
Bonjour,
Tout d'abord, il faut bien se dire qu'un service n'est pas exactement comme un programme. Il est géré différemment (appel d'autres évenements, etc). Donc un programe peut , souvent, mal réagir quand il tourne en tant que service.

Maintenant, quand tu vas dans la gestion des services. Ton service est bien configurer pour s'exécuter automatiquement je suppose ? Dans l'onglet "Récupération", indique ce que tu veux que cela fasse lorsqu'il y a une défaillance du service.

Voilà, je ne vois pas autre chose.
portu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 16h01   #3
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Bonjour.

Merci beaucoup pour ta réponse portu.

J'ai essayé ce que tu m'as conseillé, mais ça n'a pas fonctionné.

Le truc c'est que pour mettre en place ce programme en tant que service, je passe par ,comme tu as pu le voir dans le tutoque j'ai mis en lien, la commande système suivante:

instsrv TIMER srvany.exe, srvany.exe qui est un .exe qui va permettre de lancer ma vraie appli timer en tant que service (ie c'est un paramètre de lancement de srvany.exe), j'avais essayé instsrv TIMER timer.exe mais cela ne fonctionnait pas, j'avais droit à l'erreur 1053 de windows (n'a pu lancer le service dans le temps imparti).

Donc c'est pour ça que je demandais si on ne pouvait pas dans la base de registres correspondante au service, mettre un paramètre (du style Run Parameter) auquel on va dire tout le temps.

Peut etre que je m'avance un peu, car je ne connais pas du tout les tenants et aboutissants de la base de registres.
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 08h54   #4
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
Je vois plusieurs causes possibles :
- Ton application ne se ferme pas correctement aprés son traitement, et donc elle n'est pas relancé aprés.
- Ton application tournant en tant que service dans une session LocalSystem peut avoir quelques problèmes de droits.

Essaye de logguer ce que fait ton appli. Tu verras alors si quelques messages peuvent t'aider.
Avant de passer ton application en tant que service, tu n'as pas essayer de la faire tourner avec le planificateur de Taches de Windows ? C'est rudimentaire mais ca permets de faire pas mal de choses.
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 13h36   #5
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Bonjour remy_74 et merci pour tes informations.

J'ai donné (comme un bon bourrin) pour voir tous les droits à mon application, toujours le même problème, quand je me loggue e me déloggue l'application liée au service ne s'exécute plus.

Ensuite il y a une chose que je n'ai pas saisie dans ce que tu disais :

"Ton application ne se ferme pas correctement aprés son traitement, et donc elle n'est pas relancé aprés."

L'application n'a pas à se fermer puisque le service continue tout le temps, à moins que je ne m'exprime mal, je veux dire :service lancé au démarrage -> appli appelée par le service et donc lancée , log et délog n'impliquent pas un tuage de l'appli lancée par le service.

Ai-je été clair ?
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 14h14   #6
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
oui plus clair
ton appli est censé faire quoi exactement ?
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 13h19   #7
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Bonjour.

Excuse je viens de voir ton dernier message seulement maintenant remy_74.

Alors mon application est en fait un prog C++ builder, qui a un composant timer (pour pouvoir effectuer des tâches spécifiques à heure fixe, par exemple télécharger des données, générer des fichiers Word, etc...).

Mais le futur utilisateur souhaite que l'on passe cette appli (donc le projet.exe) en services windows, car il en avait marre à la main de le relancer, enfin bon le client est roi, c'est pour cela que j'ai posé ma question sur le forum.

Cordialement,

Zocco.
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 15h33   #8
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
Tu as ré-ecris le systeme des taches planifiées windows ??
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 21h30   #9
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
En fait non, je n'ai pas réécrit le système de tâches planifiées de Windows, car l'appli n'a pas été écrite par moi .

En plus je pense qu'il y a une différence entre le système des tâches planifiées de Windows et l'appli (déjà il faut lancer l'appli ).

Mon travail consiste "juste" à effectuer ce passage d'applications en service.
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 08h04   #10
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
As tu essayé de faire tourner ton service avec un compte d'utilisateur plutot qu'en localSystem ? J'avoue que je seche un peu..
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 10h13   #11
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Bonjour.

Merci pour ton conseil remy_74, j'ai fait ce que tu avais dit et, il semble que l'appli lancée par le service fonctionne bien quand on se loggue, déloggue et reloggue. Mais du coup il y a plusieurs choses qui m'interrogent :

Peut-on la faire (l'application) interagir avec le bureau, pour voir si elle tourne bien, (parce qu'elle apparaît dans la liste des processus, mais qui nous dit qu'elle tourne correctement, mis à part un test pour vois si elle écrit bien des choses) ?

Si on a mis le service en mode automatique, mais qu' il est associé à un compte :
- va-t-il se lancer au démarrage de l'ordi (et donc l'appli également)
- nécessite-il un log sur le compte en question (ce qu'il ne faudrait pas car l'application lancée par le service devrait tourner même si l'utilisateur n'est pas loggué) ?

Je sais, je pose des questions du genre, peut-on avoir le beurre, l'argent du beurre et le postérieur de la crémière , mais c'est parfois nécessaire pour faire avancer les choses.
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 12h14   #12
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
Ton service va demarrer tout seul si tu le mets en automatique.
Par contre tu auras des soucis si tu laisse interagir avec le bureau (c'est ton cas actuellement..)
Pour ce qui est du log, je vois pas ce que veux faire, mais si c est pour t avertir en cas de probléme il vaux mieux faire que ce soit le service qui genere les avertissements. Soit tu le fait ecrire dans les Journaux windows, soit dans un fichier log.

PS: J'ai vu la crémière .. laisse tomber l'affaire ..
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 12h44   #13
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
J'ai fait quelques tests et ça a l'air de bien fonctionner :

J'ai mis dans mon code une création d'un fichier texte toutes les 20 secondes, j'ai arrêté le service, redémarré la machine, attendu 5 minutes me suit loggué (c'est ce que je veux dire par logguer) , sous ma session utilisateur et les fichiers ont bien été créés, ensuite je suis parti de ma session (sans arrêter la machine), attendu deux minutes me suis remis sous ma session, et les fichiers étaient bien créés !! Joie !!

Par contre il reste le dernier point à utiliser, comment faire pour autoriser le service à interagir avec le bureau ? Option accessible quand on utilise le compte LocalSystem pour le service (mais qui tuait mon appli comme je le disais dans les messages précédents), mais hélas inaccessible quand on utilise un compte utilisateur .

Est-ce possible de le faire (base de registres, options à mettre dans le service avec instsrv, etc ...) ?
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 13h19   #14
Membre habitué
 
Inscription : avril 2007
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 124
Points : 135
Points : 135
Tu peux essayer de le faire tourner avec ton utilisateur et de modifier la base de registre comme expliqué ici..
http://www.codeproject.com/install/c...select=1420018

J'ai pas essayé...
remy_74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 13h51   #15
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Je viens d'essayer mais, hélas cela n'a pas fonctionné. Si jamais tu as une autre idée, je suis preneur .
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 10h10   #16
Invité de passage
 
Inscription : mai 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 21
Points : 4
Points : 4
Meric à tous pour votre aide.

Au final, la deuxième solution même si l'on ne peut point faire appraître l'interaction application-bureau, ne fonctionne pas à quand même été retenue.
Je marque donc le sujet comme résolu.

Merci à tous .

A bientôt.

Zocco
Zocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h35.


 
 
 
 
Partenaires

Hébergement Web