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 multiple instance


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut service Windows multiple instance
    Bonjour tout le monde.

    J'essaye de lancer plusieurs instance d'un même service.

    J'ai un outils de configuration qui va installer le service pour cela il va copier le service.exe dans un répertoire propre au service (avec le nom du service que je viens de créer) . Je créé un deuxième service qui copie également le même service.exe d'un dossier pour le mettre dans son dossier avec son nom de service.

    Donc j'ai un dossier:
    Service1/ServiceWindows1.exe
    Service2/ServiceWindows2.exe

    le service fonctionne mais je ne pas peux lancer les deux en même temps...
    Un service à la fois. ce n'est pas ce que je recherche.
    Pourtant que je vais voir dans service.msc - clic droit - propriétés - sur un des services, on voit le chemin de lancer qui est bien celui de répertoire créer avec Service1.exe ou Service2.exe

    Alors je ne comprend pas trop. Merci de l'aide apporté.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    le but d'un service c'est d'être unique

    après il y a plusieurs possibilités, sur un service coder pour qu'il fasse plusieurs choses, ou faire un copier coller du projet pour en compiler 2 avec le même code mais des noms différents
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le but d'un service c'est d'être unique
    Je suis d'accord avec toi, mais il est possible de faire du multi instance.

    Citation Envoyé par Pol63 Voir le message
    faire un copier coller du projet pour en compiler 2 avec le même code mais des noms différents
    c'est ce que je fais actuellement, j'ai un code de départ (service installer)
    et je copie les fichiers d'installation pour chaque nouveau service créer avec un nom différent.

    Le l'installation et le lancement du service ce fait via ces nouveau fichiers propre au service, mais quand je démarre le deuxième service (qui a également ces propres fichiers d'instal) il refuse car le premier est déjà lancé.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    Citation Envoyé par JulienBaldy Voir le message
    Je suis d'accord avec toi, mais il est possible de faire du multi instance.
    ah ?


    Citation Envoyé par JulienBaldy Voir le message
    Le l'installation et le lancement du service ce fait via ces nouveau fichiers propre au service, mais quand je démarre le deuxième service (qui a également ces propres fichiers d'instal) il refuse car le premier est déjà lancé.
    pour moi ca a fonctionné
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    je me rappelle j'avais un peut le même problème, j été obligé de lancé trois service sur le meme serveur :
    Service_Dev
    Service_PreProd
    Service_Prod

    tu peux pas les lancés sur la meme machine au même temps

    ce que tu peux faire c'est de faire trois ou deux service ( donc autant d'installer ) et tu change juste le nom du service ( dans les proprités du service ) et sa deverias marché

    en tout cas moi c'est comme ça que j'ai fait

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Citation Envoyé par Michou2000 Voir le message
    ce que tu peux faire c'est de faire trois ou deux service ( donc autant d'installer ) et tu change juste le nom du service ( dans les proprités du service ) et sa deverias marché

    en tout cas moi c'est comme ça que j'ai fait
    ah... parce que le but c'est que justement il puisse créer plusieurs services via un outil que j'ai créé en c#, et le client est sensé en créé autant qu'il le souhaite et pouvoir en démarrer autant qu'il le souhaite aussi.. mais je vais essayer comme tu dis.

    Merci de votre aide.

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    ca doit etre faisable quand même


    on peut installer un service depuis un exe .net, il reste à trouver comment rendre le nom dynamique

    mes services sont des exe auto installables, l'exe est un projet de type service dans lequel j'ajoute les références windows forms et un form
    y a des boutons installer/démarrer etc... et if system.environment.userinteractive => j'affiche le form de paramétrage/installation else je .run le service (je fais un .new quand même, l'instance me sert pour avoir les infos dessus (.name et autres))
    pour ca il suffit juste de modifier le .designer
    (sous réserve que le framework soit installé tout de même, pas toujours aussi bien qu'un setup)
    j'ai testé ca fonctionne aussi avec un projet wpf en ajoutant une classe qui hérite de servicebase

    après le name est en général défini dans l'initializecomponent du service, et le serviceinstaller, il suffit de trouver comment changer le serviceinstaller.servicename/displayname avant de l'installer

    (code vb.net)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.Configuration.Install.ManagedInstallerClass.InstallHelper(New String(0) {exepath})
    System.Configuration.Install.ManagedInstallerClass.InstallHelper(New String(1) {"/u", exepath})
    ca passe par installutil je crois, qui est fournit avec le framework

    pour détecter l'état je passe par System.ServiceProcess.ServiceController.GetServices where name
    si je ne le trouve pas = pas installé, sinon .Status

    avec tout ca normalement on peut faire pas mal de bidouille

    ca me permet aussi de faire du debug en ne faisait pas .run quand je suis dans vs tout en démarrant les threads de traitement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ca doit etre faisable quand même


    on peut installer un service depuis un exe .net, il reste à trouver comment rendre le nom dynamique
    Personnelement le nom est deja dynamique. Via une configuration de clef de registre lors de l'installation portant le nom du nouveau service. donc le .exe porte également le nom du nouveau service.

  9. #9
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    si j'ai bien compris le but c'est de lancer plusieurs services via un installer ?

    tu peux personnaliser ton projet d'installation pour donner les noms de services a installer et le projet d installation pourra copier le .exe dans des répertoires # et nommer les services.

    car le service dans Windows est reconnait avec son nom. donc impossible de lancer plusieurs service avec le même nom

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Citation Envoyé par azstar Voir le message
    si j'ai bien compris le but ce de lancer plusieurs via un installer ?
    exactement

    Citation Envoyé par azstar Voir le message
    tu peux personnaliser ton projet d'installation pour donner les noms de services a installer et le projet d installation pourra copier le .exe dans des répertoires # et nommer les services.

    car le service dans Windows est reconnait avec son nom. donc impossible de lancer plusieurs service avec le même nom
    Je le fais deja j'ai un outil qui installe mes service, pour chaque service installer, il copie les fichiers permettant l'installation de service dans un repertoir propre au service.
    Le repertoire et les fichiers venant d'être copié on le nom du service créer (donc jamais le même).
    Même quand je fais un clic droit -propriétés (dans service.msc) sur mes service, ils ont le bon chemin comprenant le .exe portant le nom du service.


    Mes service ont un nom dynamique, les fichiers d'install porte le nom du service. L'installation porte sur ces nouveaux fichiers propre aux service.. donc je comprend plus trop. tout est dynamique mais quand je démarre deux services en même temps.. rien a faire. un seul tourne.

  11. #11
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    peut être ça va aider lien

    lien 2

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 38
    Par défaut
    Salut / re


    Autant pour moi, je suis un tocard, j'avais oublier d'instancié le serviceInstaller et le ProcessInstaller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                this.BeforeInstall += new InstallEventHandler(ProjectInstaller_BeforeInstall);
                this.AfterInstall += new InstallEventHandler(ProjectInstaller_AfterInstall);
                serviceInstaller = new ServiceInstaller(); // ligne que j'avais zapé
                process = new ServiceProcessInstaller(); // ligne que j'avais zapé
                Installers.Add(serviceInstaller);
                Installers.Add(process);

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

Discussions similaires

  1. Multiple instance de service Windows
    Par zubov dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/01/2007, 09h22
  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