C# Creare un Servizio Windows - Part1
Salve ragazzi, ultimamente mi son imbattuto nello sviluppo di un servizio windows, niente di complicato, ma quando ho dovuto creare un progetto di setup per l’installazione ed aggiungere alcune customizzazioni ho riscontrato alcuni problemini per i quali ho ritenuto opportuno postarne le soluzioni.
Riepilogo Link:
Parte 1
Parte 2
Parte 3
In questa prima parte descriverò come creare un servizio windows con VisualStudio 2010, poi seguirà una seconda parte dove indicherò come aggiungere il progetto di setup, ed infine nella terza parte (molto interessante) indicherò come aggiungere una Form Custom durante l’installazione il cui scopo è quello di memorizzare sul file di configurazione una directory selezionata dall’utente.
Aprire VisualStudio2010 e cliccare su “New Project…”:
Selezionare Windows Service come tipo di progetto, impostare il percorso dove salvare il progetto e dargli un nome:
Nel nostro esempio non faremo altro che una banale scrittura su EventViewer, quindi controlliamo se il source esiste altrimenti lo creiamo, ed aggiungiamo un oggetto di tipo Timer cosi da poter fare eventuali altre azioni allo scadere di un determinato intervallo:
protected override void OnStart(string[] args)
{
if(!EventLog.SourceExists("TestMyService"))
EventLog.CreateEventSource("TestMyService","Application");
timer1 = new Timer();
timer1.Interval = 10000; //Intervallo di 10 seconti
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Enabled = true;
}
Nota: l’oggetto timer deve essere di tipo “System.Timers.Timer”, quindi anziché trascinarlo da designer che è un oggetto di tipo “System.Windows.Forms.Timer” l’ho dichiarata come istanza privata globale della classe:
public partial class Service1 : ServiceBase
{
private System.Timers.Timer timer1;
...
}
Nell’evento timerElapsed non faremo altro che tracciare un log nell’eventViewer
void timer1_Elapsed(object sender, ElapsedEventArgs e)
{
EventLog.WriteEntry("TestMyService","Timer scattato!");
}
Adesso il nostro servizio è pronto, compilandolo vedremo che non ci da nessun errore, passiamo quindi alla fase successiva e cioè quella dell’installazione fra i servizi windows