IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Déboguer un Service Windows


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut Déboguer un Service Windows
    Bonjour à tous,

    J'ai du mal à déboguer un Service Windows que j'ai créé. Mon service comporte un Timer qui tick à toutes les secondes. Une partie du code que je souhaite déboguer se trouve dans sa méthode timer_Tick().

    Le problème est qu'une fois mon service installé et démarré, m'attacher au processus de celui-ci à partir de Visual Studio me limite à déboguer dans des breakpoints de la méthode OnStart() seulement.

    Y a-t-il une raison à cela ? Dans ma méthode OnStart() j'appelle la méthode timer.Start() mais il n'atteint aucun de mes breakpoints dans timer_Tick(). Au début je pensais que p-e il y aurait un problème avec mon timer, et que peut-être que la méthode timer_Tick() n'est jamais appelée, mais en exécutant le même code dans une application windows, tout fontionne #1.

    J'aimerais savoir pourquoi je ne peux pas suivre les autres breakpoints qui sont en dehors de la méthode OnStart().

    Peut-être existe-t-il une meilleure méthode pour déboguer un service windows ?

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Alors normalement c'est le contraire : tu ne peux pas debuguer ce qui se trouve dans le OnStart seulement ce qui est en dehors.

    J'ai réalisé il a très peu longtemps un service windows avec un timer également et chez moi tout fonctionne et j'arrive à mettre un breakpoint dans mon Tick.

    Tu peux nous montrer ton code s'il te plait.


  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    Bien sûr ... voici le projet au complet (Visual Studio 2005).
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    L'erreur pourrait venir du fait que tu as mis Enabled à true par défaut pour le timer ce qui a pour but de lancer le timer.

    Du coup ça fait ptet un problème comme le OnStart n'a pas encore été lancé.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    Il était a false quand j'ai écrit mon post. Je l'ai mis à true dernièrement pour tester mais sans succès.

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Hum bizarre.

    Voici mon code qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Timer mTimer = null;
     
    protected override void OnStart(string[] args)
    {
        InitializeTimer();
    }
     
    private void InitializeTimer()
    {
        mTimer = new Timer(1000);
        mTimer.Elapsed += new ElapsedEventHandler(mTimer_Elapsed);
        mTimer.Start();
    }
    En lisant ton code et mon code j'ai remarqué que l'on n'utilise pas la même classe Timer
    Toi tu utilises System.Windows.Forms.Timer et moi System.Timers.Timer.

    Essaye pour voir.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Par défaut
    Skyrunner, merci infiniment !!!

    J'utilisais un System.Windows.Forms.Timer et comme tu pensais, ça ne fonctionne apparemment pas dans un Windows Service.

    J'ai donc changé pour un System.Timers.Timer et ça fonctionne #1 !

    Merci encore !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WinService][C#] Comment déployer un service windows ?
    Par sokette dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/04/2005, 16h38
  2. Planifier le démarrage d'un service Window
    Par tscoops dans le forum Windows XP
    Réponses: 2
    Dernier message: 29/03/2005, 14h56
  3. [WD7.5] Service Windows
    Par cqfd dans le forum WinDev
    Réponses: 1
    Dernier message: 29/03/2005, 08h58
  4. [VB6]Arreter un service windows
    Par bouboussjunior dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/10/2004, 17h03
  5. [C#] Icône, barre des tâches et Service Windows
    Par SErhio dans le forum Windows Forms
    Réponses: 17
    Dernier message: 03/09/2004, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo