2 pagine in totale: <<Indietro 1 [2]
Considerando invece il box Properties dell'oggetto serviceInstaller1, possiamo configurare le seguenti proprietà: ServiceName, ovvero il nome del servizio così come vogliamo che compaia nella lista dei servizi di sistema, ServicesDependendOn, ovvero la lista dei parametri che possiamo passare al servizio in fase di avvio (si tratta dell'array di stringhe accettato dal metodo OnStart definito prima), e StartType, ovvero la modalità di avvio (manuale o automatica).

Implementazione del codice
Una volta creato l'installer, occorre scrivere il codice per fare in modo che il servizio faccia quello per cui è stato pensato. Se vogliamo che il nostro servizio semplicemente esegua operazioni in fase di Start o Stop, possiamo limitarci ad implementare semplicemente i rispettivi metodi. Il nostro caso è un po' più articolato dal momento che il servizio prevede l'esecuzione di operazioni ripetute nel tempo. A tal proposito utilizziamo un oggetto Timer che andiamo ad aggiungere nella nostra classe che rappresenta il servizio.
public partial class WpWindowsServiceTutorial : ServiceBase
{
private Timer _timer = new Timer();
private double _Interval = 30000;
private string _Queue;
private string _Sended;
public WpWindowsServiceTutorial()
{
InitializeComponent();
this._Interval = Program.Config.IntervalSpedizione;
this._Queue = Program.Config.QueueFile;
this._Sended = Program.Config.SendedFile;
this._timer.Elapsed += new ElapsedEventHandler(OnProcess);
}
// ...
// ...
// ...
}
Nel costruttore della classe sottoscriviamo l'evento legato al richiamo del Timer associandogli il metodo delegato ad effettuare le operazioni richieste al nostro servizio. In OnStart abilitiamo il timer e in OnStop lo disabilitiamo. Diciamo che ormai il gioco è fatto, è possibile trovare il resto del codice nell'allegato.
Creazione del Setup
Per renderci le cose più facili, aggiungiamo ancora un progetto per effetuare l'installazione del servizio appena creato. Agendo sul menù di Visual Studio, la sequenza File -> New -> Project apre una finestra in cui andiamo a selezionare il progetto per la creazione del setup.

Aggiunto il progetto di setup, clicchiamo col tasto destro sul nome del progetto in Solution Explorer e selezioniamo dal menù contestuale Add->Project Output. A questo punto nel box Project possiamo scegliere il nostro progetto relativo al servizio da installare e nella lista sottostante l'opzione Primary Output.

Per aggiungere Custom Actions possiamo cliccare col tasto destro sul progetto di setup nel Solution Explorer di Visual Studio e quindi selezionare la sequenza View -> Custom Actions. Nella finestra che si apre si può cliccare nuovamente col tasto destro del mouse sulla voce Custom Actions, selezionare Add Custom Action e nella dialog box scegliere Application Folder e quindi Primary output from [WindowsService Project Name] (Active).
Di default un progetto di setup non è incluso tra i progetti che sono compilati nella soluzione, quindi o richiamiamo manualmente la compilazione (opzione Build), oppure possiamo configurare la soluzione in modo tale che il progetto venga effettivamente compilato (tasto destro sulla soluzione in Solution Explorer, quindi sequenza Properties -> Configuration Properties -> Configuration).
Una volta compilata la soluzione, per installare il servizio non dobbiamo far altro che effettuare l'installazione tramite il progetto di setup (opzione Install). Se nell'installer avevamo selezionato come StartType l'opzione Manual, dobbiamo utilizzare lo snap-ip per la gestione dei servizi del MMC per avviare il servizio (vedi figura).

Conclusioni e considerazioni
Siamo giunti alla fine di questo tutorial per la creazione e l'installazione di un servizio. A questo punto è bene fare un paio di osservazioni. Certamente il vantaggio di avere tutto quello che serve direttamente all'interno dell'applicazione web offre alcuni vantaggi, specialmente in fase di deployment, ma per applicazioni solide e performanti i servizi diventano ottimi strumenti di lavoro. Come si è avuto modo di mostrare nel corso dell'articolo, sfruttando le funzionalità offerte da Visual Studio 2005, la creazione e l'installazione di un servizio non sono certo operazioni così complesse, pertanto l'utilizzo dei Windows Service si rivela prezioso anche in relazione ai vantaggi che possiamo trarne.
2 pagine in totale: <<Indietro 1 [2]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Utilità
Contenuti
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!