Installation service Windows

boutonk Messages postés 31 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 16 juillet 2008 - 10 mars 2006 à 15:24
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 6 août 2011 à 23:56
Bonjour a tous,
Une question assez urgente: Comment fait-on pour installer un service windows créé en c# sur un pc qui ne possede pas d'invite de commande .NET.
J'ai essayer avec une invite de commande ms-dos en faisant nomdu service -install mais ca ne marche pas.
Une idée??

6 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
10 mars 2006 à 16:02
Hello,

Si le pc en question est un XP, tu peux utiliser la commande SC.

Tape-la sans paramètre pour avoir des indications.

Autrement, le plus simple est d'utiliser un projet de type setup.

Avec google, j'ai trouvé ça : http://www.codeproject.com/dotnet/simplewindowsservice.asp
Va voir sous la section "To create a setup project for your service".

Amicalement, SharpMao
0
keikun59 Messages postés 73 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 18 novembre 2010 1
10 mars 2006 à 16:07
Utilise l'outil installutil.exe (sous le répertoire d'installation du framework)



La commande est très simple : ...installutil.exe -i monservice.exe

Keikun59
0
gretro Messages postés 13 Date d'inscription vendredi 12 juin 2009 Statut Membre Dernière intervention 27 septembre 2009
8 avril 2010 à 21:00
J'ai une petite question à ce sujet. Si j'installe mon service et que je veux le déboguer, est-ce que ça fonctionnera ? J'imagine qu'on ne s'attend pas à ce qu'on ait à réinstaller le service à chaque fois, non ?


gretro !
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
4 août 2011 à 20:44
Salut à tous !

Pour répondre à gretro et à ceux qui se pose la même question...

Pour palier à ça j'ai trouvée une petite solution sympa
mais il faut feinter... je m'explique !

Il faut "passer" le service en application Windows, et pour cela j'ai utilisé
la constante de compilation DEBUG :

Au niveau du point d'entrée de l'application (donc le fichier Program.cs)
static class Program
{
    static void Main()
    {
#if DEBUG
        // Instancie une fenêtre permettant de simuler le service
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault( false );
        Application.Run( new WinService() );
#else
        // Instancie le service
        ServiceBase.Run( new ServiceBase[] { new WinService() } );
#endif
}


et au niveau du code du service
#if DEBUG
public class WinService : Form
#else
public class WinService : ServiceBase
#endif
{
#if DEBUG
    private IContainer components;
#endif

    // Constructeur du service
    public WinService()
    {
        // Initialise le service
        InitializeComponent();
    }

#if DEBUG
        private void InitializeComponent()
        {
            ;// Ici, le code habituellement généré par le concepteur WinForm de visual studio
            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WinService));
            this.SuspendLayout();
            // etc etc..

        }
#else
        private void InitializeComponent()
        {
            // 
            // WinService
            // 
            this.AutoLog = false;
            this.ServiceName = "Nom du service";

        }
#endif

    // Au démarrage du service
#if DEBUG
    protected override void OnLoad( EventArgs e )
    {
#else
    protected override void OnStart( string[] args )
    {
#endif
        ;// Ici, le code à exécuter au démarrage du service
    }
}


Enfin bref, voilà le principe
Après, si on veux déboguer, il suffit d'activer la constante DEBUG
pour cela, il faut afficher les propriétés du projet
Dans l'onglet "Générer" -> cocher "Définir constante DEBUG"
Et c'est partit !

En espérant que ça serve à quelqu'un...
Et si vous avez besoin de précision, n'hésitez pas !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
6 août 2011 à 23:56
Bonsoir,

Pour debugger un service, on peut aussi utiliser, sous visual studio, la commande "Attach to process" du menu Debug.

Pour cela il faut avoir compilé le service en mode debug, puis on le lance, via le gestionnaire de service, et on attache le debugger.
Seul bémol, il est pratiquement impossible de debugger la séquence de chargement, sauf en mettant une pause dans la procédure OnStart, nous laissant le temps d'attacher le debugger.
Si non la méthode de LUDINSKI fonctionne bien.


Bob.
C# is amazing, enjoy it!
0
gtrusz Messages postés 2 Date d'inscription vendredi 23 janvier 2004 Statut Membre Dernière intervention 6 octobre 2007
27 oct. 2007 à 09:20



-1
Rejoignez-nous