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 Windows et exécutable [Débutant]


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut Service Windows et exécutable
    Bonjour à tous,

    Je souhaiterai que mon programme se lance en même temps que le démarrage de mon pc car j'ai développé un serveur. Pour se faire je souhaite réaliser un service Windows qui appelle le .exe de mon serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    namespace Service
    {
        public partial class ChatServeur : ServiceBase
        {
            public ChatServeur()
            {
                InitializeComponent();
                System.Diagnostics.Process.Start(@"C:\Clement\Projet\CmdServer\ConsoleServer\bin\Debug\ChatServeur.exe");
            }
     
            protected override void OnStart(string[] args)
            {
            }
     
            protected override void OnStop()
            {
     
            }
        }
    }

    Lorsque j'installe le service que je viens de créer je le retrouve bien dans la liste des services. Mais lorsque je le lance, un message d'erreur semblable à celui-ci apparaît : "impossible de demarrer le service X sur Ordinateur Local Erreur 1053: le service n'a pas répondu assez vite a la demande de lancement ou de contrôle"

    Avez-vous une idée ?

    Cordialement,
    clemou01

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bonjour

    Cela ne semble pas très logique ce que tu veux faire.
    Pourquoi ton serveur n'est pas déjà un servce ?
    De plus, ce n'est pas non plus cohérent de démarrer un programme depuis un service.

    Merci de donner des précisions sur tes choix.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut
    Lorsque j'ai commencé à développer mon serveur j'avais pas penser à le faire dans un service. Je le lançait au démarrage d'une session utilisateur en écrivant dans une base de registre (HKEY_CUREENT_USER). Et en fait je me suis aperçu que sur les serveurs, aucune session n'est ouverte et donc il faut en gros que je "migre" mon application dans un service Windows

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par clemou01 Voir le message
    donc il faut en gros que je "migre" mon application dans un service Windows
    Tout à fait, et surement pas faire une verru avec un service lançant un programme lors de son instanciation.

    Tu vas te heurter à des tas de problèmes. (même si c'est pas totalement infaisable).

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut
    Merci pour ta réponse.

    Le problème c'est que je ne m'y connais pas trop en Service Windows et je ne sais pas par où commencer... Surtout que ma solution contient plusieurs projet dont un projet console..
    Je suis un peu perdu.. Dois-je tout mettre dans le service.cs ?
    Peux-tu m'éclairer un peu sur la façon de faire ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Par défaut
    Bonjour,

    1)
    La fonction "Start" d'un service ne doit pas être bloquante, comme toute autres fonctions d'un service.
    Tu dois donc démarrer un thread dans la fonction Start, de cette manière Windows comprendra que le service a bien démarré. De même dans Stop, tu arrêtes proprement ton thread.

    2)
    Depuis Vista et 2008, les services sont lancé dans une autre session spécial qui n'a pas accès au GUI. Donc tu ne pourra mettre ta console dans ton service, ni même la lancer depuis le service.
    Tu dois créer un système de communication entre ta console et ton service, il est possible d'avoir des commandes personnalisé sur un service windows.


    Dois-je tout mettre dans le service.cs ?
    Clairement non, service.cs ne contient que les méthodes start, stop, et commande personnalisé.
    Ces méthodes utiliserons les classes et méthodes de ton projet initial.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut
    Je te remercie.

    Je vais voir ce que je peux faire avec vos conseils

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

Discussions similaires

  1. Exécuter un programme à partir d'un service windows
    Par TekP@f dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/01/2009, 11h09
  2. Réponses: 4
    Dernier message: 26/05/2008, 03h28
  3. Service windows exécutant une tâche périodique
    Par Nico_stras dans le forum C#
    Réponses: 13
    Dernier message: 06/03/2008, 08h46
  4. fin d'exécution d'un service windows
    Par devmat dans le forum VB.NET
    Réponses: 0
    Dernier message: 27/08/2007, 18h46
  5. Créer un service Windows (pour exécuter une application)
    Par drinkmilk dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 16/08/2007, 11h24

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