2010-07-12 8 views
7

J'ai une simple application C# qui doit fonctionner en tant que service. comment puis-je le faire fonctionner comme un service au lieu de simplement comme un exécutable?C# - comment faire fonctionner l'application en tant que service?

+0

duplication possible de [ressources sur la création d'un service Windows en utilisant C#] (http://stackoverflow.com/questions/1688382/resources-on-creating-a-windows-service-using-c) – Joe

+0

Ici, j'ai trouvé des instructions étape par étape: https://stackoverflow.com/a/593803/7713750 – Rekshino

Répondre

2

Visual C# 2010 Recipies a un exemple dedans qui vous montrera exactement comment faire ceci, que j'ai essayé using VS 2008 et .NET 3.5.

Il revient à ceci:

  1. Créer une nouvelle application « Service Windows » dans Visual Studio
  2. Port source de votre application dans le modèle d'exécution du service, AKA votre fonction principale devient une partie d'un gestionnaire d'événement déclenché par un objet de minuterie ou quelque chose le long de ces lignes
  3. Ajouter une classe d'installation de service à votre projet de service Windows - ça va ressembler à quelque chose comme cet extrait de code ci-dessous:

    [RunInstaller(true)] 
    public partial class PollingServiceInstaller : Installer 
    { 
        public PollingServiceInstaller() 
        { 
         //Instantiate and configure a ServiceProcessInstaller 
         ServiceProcessInstaller PollingService = new ServiceProcessInstaller(); 
         PollingService.Account = ServiceAccount.LocalSystem; 
    
         //Instantiate and configure a ServiceInstaller 
         ServiceInstaller PollingInstaller = new ServiceInstaller(); 
         PollingInstaller.DisplayName = "SMMD Polling Service Beta"; 
         PollingInstaller.ServiceName = "SMMD Polling Service Beta"; 
         PollingInstaller.StartType = ServiceStartMode.Automatic; 
    
         //Add both the service process installer and the service installer to the 
         //Installers collection, which is inherited from the Installer base class. 
         Installers.Add(PollingInstaller); 
         Installers.Add(PollingService); 
        } 
    } 
    

Enfin, vous allez utiliser un utilitaire de ligne de commande pour installer effectivement le service - vous pouvez lire sur la façon dont cela fonctionne ici:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/d8f300e3-6c09-424f-829e-c5fda34c1bc7

Laissez-moi savoir si vous avez des questions.

3

Il existe un tempat appelé "Windows Service" dans Visual Studio. Si vous avez des questions faites le moi savoir, j'écris des services toute la journée.

+0

merci beaucoup jonathan je vais certainement vous prendre sur ce –

2

Il existe le Framework Open Source qui héberge l'application .net en tant que service Windows. Il n'y a aucune difficulté à installer, désinstaller le service Windows. Ça découble très bien. S'il vous plaît vérifier ce post Topshelf Windows Service Framework Post

Questions connexes