locked
Arrêt d'un service lors de la fermeture session RRS feed

  • Discussion générale

  • Bonjour,

    Ca fait quelques temps que je suis sur ce problème.
    J'ai réussi à créer un service windows qui se lance au démarage de windows, sans qu'aucun utilisateur ne soit loguer. Ensuite quand un utilisateur se logge mon programme s'affiche correctement et continue de tourner.
    Puis quand l'utilisateur se délogue, mon programme continue de tourner mais s'arrête prématurément au bout de quelques minutes. Et quand je me relogue l'application dans les services est arrêté et ne redémarre plus.
    Sinon si je me délogue et me relogue directement après, l'application continue de tourner et se réaffiche à l'écran. Mon application ne s'arrête pas d'elle-même et je peux la laissée tourner durant des heures sans aucun soucis. Je pense donc que ça vient d'un problème de configuration de Windows et plus précisément de mon service.

    Je souhaiterais que mon programme continue de tourner, après que l'utilisateur se soit delogué. Comment faire? D'où vient se problème? Existe - t -il un moyen de savoir ce qui se passe au nouveau des services, comme des logs, un rapport d'erreurs? Est-ce tout simplement impossible?

    Merci d'avance pour vos réponses,
    Très cordialement,
    A bientot,
    Stéphan.
    mercredi 19 mars 2008 04:50

Toutes les réponses

  • Bonjour,

     

    as-tu des erreurs dans ton journal des evenements ?

     

    Comment as-tu crée ton service ? As-tu choisis de le faire intéragir avec ton bureau ?

     

    Ce qui est étrange est que ton service continue de fonctionner quelques minutes aprés que tu te sois delogué, ce qui fait penser à un bug de l'application.

    As-tu regardé du coté des logs de l'application également ?

     

    Cordialement.

    mercredi 19 mars 2008 09:40
  • Non il n'y a pas d'erreur. Mais j'ai bien un événement qui dit que mon programme après un certains temps variables de 30minutes à quelques heures. A recu l'ordre d'arrêt.
    J'ai crée mon service à l'aide de la commande sc. J'ai choisi de le faire intéragir avec mon bureau.
    J'ai regardé dans les logs et rien d'anormal. A part que j'ai une routine d'arrêt qui est normalement lancé lorsque j'arrete mon programme. Le probleme c'est qu'elle n'est pas appelé. L'application se ferme comme ca sans aucun log. Ca me fait la meme chose, j'obtiens les meme logs si je coupe moi meme le service et lui demande de s'arreter.

    Pourquoi cela n'est il pas normal que l'application tourne quand personne est logué? Si ce n'est pas la bonne facon de faire, comment faire? Comment faire pour qu'un autre processus comme MS SQL Server 2005 tourne sans que personne soit logué? Parce que mon application utilise aussi cet outil!

    Encore une fois je ne pense pas que cela provienne de mon application. Mais de l'outil Microsoft.

    Cordialement,
    Stéphan
    mercredi 19 mars 2008 14:26
  •  Stéphan A écrit:
    Non il n'y a pas d'erreur. Mais j'ai bien un événement qui dit que mon programme après un certains temps variables de 30minutes à quelques heures. A recu l'ordre d'arrêt.
    J'ai crée mon service à l'aide de la commande sc. J'ai choisi de le faire intéragir avec mon bureau.
    J'ai regardé dans les logs et rien d'anormal. A part que j'ai une routine d'arrêt qui est normalement lancé lorsque j'arrete mon programme. Le probleme c'est qu'elle n'est pas appelé. L'application se ferme comme ca sans aucun log. Ca me fait la meme chose, j'obtiens les meme logs si je coupe moi meme le service et lui demande de s'arreter.

    Pourquoi cela n'est il pas normal que l'application tourne quand personne est logué? Si ce n'est pas la bonne facon de faire, comment faire? Comment faire pour qu'un autre processus comme MS SQL Server 2005 tourne sans que personne soit logué? Parce que mon application utilise aussi cet outil!

    Encore une fois je ne pense pas que cela provienne de mon application. Mais de l'outil Microsoft.

    Cordialement,
    Stéphan

     

    Quelle commande exacte as-tu tapé via SC ? A ta place, je n'aurai pas défini le service comme interagissant avec le bureau (sauf si c'est vraiment nécessaire).

     

    Concernant SQL Server 2005 il a été pensé pour fonctionner en tant que service alors que ce n'est vraisemblablement pas le cas de ton application.

     

    Personnelement j'orienterai mes recherches vers deux axes.

    1. La vérification de la bonne utilisation de la commande SC

    2. Contact de l'éditeur si possible pour lui demander si son application peut être compatible en tant que service.

     

    mercredi 19 mars 2008 22:23