Creare un Servizio Windows con Visual Studio.Net (parte1)

Visual Studio.Net permette di creare in maniera semplice e veloce un servizio windows. Proverò a spiegare in pochi passi come preparare ed installare un servizio.

Una volta avviato Visual Studio Scegliere Nuovo dal menu File, quindi fare clic su Progetto. Apparirà la finestra Nuovo progetto,

a questo punto:
  • In Tipi progetto selezionare il linguaggio desiderato (Visual Basic o C#) e successivamente su Windows.
  • In Modelli fare clic su Servizio Windows
  • Una volta selezionati anche Nome, Percorso e Nome Soluzione premere OK

Siamo pronti ad iniziare. In Esplora soluzioni fare clic con il pulsante destro del mouse su Service1.cs o Service1.vb (in base al linguaggio selezionato) , quindi scegliere Visualizza codice. Da ora in poi prenderò in considerazione solo il codice C#, in quanto lo trovo più utile vista la similitudine a quello di C++.

La classe presenta di default il costruttore Service1, che deve sempre contenere la chiamata a InitializeComponent(). Gli altri due metodi presenti sono OnStart e OnStop. Non sono altro che i due metodi che vengono richiamati rispettivamente nel momento in cui si avvia e si ferma il servizio. Il metodo OnStart prevede anche il parametro args tramite il quale sarà possibile, se lo di desidera, passare dei parametri al momento dell'avvio. Spiegherò come impostare un eventuale Timer o come gestire al meglio eventuali parametri in un articolo successivo.

A questo punto, una volta inserito il codice che intendiamo eseguire nei due metodi, è fondamentale rendere il servizio installabile. Per fare questo bisogna procedere per i seguenti passi:

  • Fare doppio click su Service1.cs per entrare nella modalità Design.
  • Cliccare con il tasto destro su un punto qualsiasi della pagina, in modo tale che appaia un menù con la voce Add Installer, e selezionarla.


  • appariranno cosi due voci nella parte superiore della finestra:
  • Selezionare l'elemento serviceProcessInstaller1, accedere alle Proprietà, e alla voce Account selezionare LocalSystem (a meno che non si intenderà avviare il serviozio con un profilo di rete o altro) .


Ora il servizio è pronto per essere compilato ed installato.

Compiliamo e generiamo il file .exe; per poi installarlo utilizzando il commando installutil; che si trova nella cartella C:\WINDOWS\Microsoft.NET\Framework\ <versione framework>.
Basterà eseguire installutil <nome programma>.exe e si andrà ad installare il servizio; allo stesso modo per disinstallare il servizio basterà aggiungere il parametro /u: installutil /u <nome programma>.

Ora il servizio risulterà visibile e pronto all'avvio dal Service Manager.