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 :

[Service] Quelques question rapide sur les services windows


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut [Service] Quelques question rapide sur les services windows
    Bsr,

    je suis entrain de developper un service et j'ai quelques interrogations:

    1) Comment debugger un service ? actuellement je met un sleep(15secondes) au debut du service, j'install mon service en ligne de commande avec installutil, je le net start, puis je me depeche pour attacher le processus avec Visual studio

    Je sais pas vraiment si c est la meilleurs methode et la plus rapide

    2) Existe t il un moyen natif dans les service windows pour:
    - communiquer entre service
    - de relancer N fois le service si apres plantage ( genre apres le service ce plante et se relance 3 fois, a la 4eme windows l'arrete definitivement )


    bien sur je fais mais propre recherche en parallele et je posterais ce que je trouve d'interessant


    merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    1.
    http://johannblais.developpez.com/tu...ramework/#LI-B

    2.
    - WCF
    - C'est paramétrable dans les propriétés du service windows en passant par les outils d'administration -> Services.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Merci SaumonAgile,

    Debugger.Launch() va s'avérer bien pratique !

    par contre pour "- de relancer N fois le service si apres plantage ( genre apres le service ce plante et se relance 3 fois, a la 4eme windows l'arrete definitivement )"

    tu dis que c est "paramétrable dans les propriétés du service windows en passant par les outils d'administration -> Services. "


    je suppose que c est l'onglet "Récupération", ca gére que 3 defaillances successives sur 1 jours, d'après ce que je comprend, c est pas possible de la faire sur plus ? genre 5...


    merci encore !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected override void OnStart(string[] args)
    {
                    Debugger.Launch();

    mais quand j'essaye de lancer le debug de Visual studio, j'ai le message d'erreur suivant:
    Echec du démarrage du Service windows
    Impossible de démarrer un service à partir de la ligne de commande ou d'un debugueur. Un service windows doit tout d'abord etre installé (en utilisant installutill.exe), puis démarré.... avec NET START"

    pourtant dans le tuto il precise qu'on peut le faire directement depuis VS:
    Certain(e)s d'entre vous auront déjà saisi une autre utilité de cette méthode Launch. Je vous donne un indice, que ce passe t'il quand vous essayer de lancer à partir de Visual Studio le débogage d'un service Windows. Vous avez un beau message disant que vous ne pouvez pas. Et maintenant, imaginez le bien que pourrait vous faire le code suivant :
    ... j'vais chercher

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Non je ne dis pas que ça marche directement dans Visual Studio, je dis simplement qu'en ajoutant cette instruction, lorsque tu démarreras le service il te demandera d'attacher un débogueur. Mais ça ne change rien au fait que tu ne peux pas déboguer directement à partir de VS.

    Cette instruction évite simplement que tu doives faire manuellement le "Attach to process".

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    je trouve que la phrase prête à confusion héhé !
    "Je vous donne un indice, que ce passe t'il quand vous essayer de lancer à partir de Visual Studio le débogage d'un service Windows"

    sinon le tuto est vraiment bien foutu et bien expliqué, j'ai appris plein de truc !


    J'ai trouvé un truc super pour démarrer le service directement depuis VS ! c'est une ptite dll:

    http://www.troolean.nl/blog/index.ph...y061107-224438

    dl de la dll : http://www.troolean.nl/download/ServiceDebugger.zip

    dans le main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                ServiceBase[] ServicesToRun;
     
                ServicesToRun = new ServiceBase[] { new MyService() };
                Troolean.ServiceDebugger.Run(ServicesToRun);

    voilou c'est très pratique je trouve, merci !

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

Discussions similaires

  1. [AC-2002] Question rapide sur les classes
    Par zak_mckraken dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/01/2010, 17h56
  2. Réponses: 15
    Dernier message: 03/08/2009, 23h08
  3. question rapide sur les warning
    Par yan dans le forum C++
    Réponses: 12
    Dernier message: 18/06/2008, 09h48
  4. Questions générales sur les services NT
    Par scougirou dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 16/03/2007, 15h50
  5. Question sur les services windows
    Par bilb0t dans le forum Windows
    Réponses: 8
    Dernier message: 09/11/2005, 15h31

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