Procedura: creare servizi Windows

Nota

Questo articolo non si applica ai servizi ospitati in .NET. Per i contenuti più recenti sui servizi Windows che usano Microsoft.Extensions.Hosting.BackgroundService e il modello worker service, vedere:

Quando si crea un servizio, è possibile usare un modello di progetto di Visual Studio denominato Servizio Windows. Questo modello esegue automaticamente una buona parte del lavoro facendo riferimento alle classi e agli spazi dei nomi appropriati, impostando l'ereditarietà dalla classe di base per i servizi ed eseguendo l'override di molti metodi, quando occorre.

Avviso

Il modello di progetto Servizi Windows non è disponibile nell'edizione Express di Visual Studio.

Per creare un servizio funzionale è necessario eseguire almeno le operazioni seguenti:

  • Impostare la proprietà ServiceName.

  • Creare i programmi di installazione necessari per l'applicazione di servizio.

  • Eseguire l'override e specificare il codice dei metodi OnStart e OnStop per personalizzare il comportamento del servizio.

Per creare un'applicazione di servizio Windows

  1. Creare un progetto Servizio Windows.

    Nota

    Per istruzioni sulla scrittura di un servizio senza l'uso del modello, vedere Procedura: Scrivere servizi a livello di codice.

  2. Nella finestra Proprietà impostare la proprietà ServiceName per il servizio.

    Impostare la proprietà ServiceName.

    Nota

    Il valore della proprietà ServiceName deve sempre corrispondere al nome registrato nelle classi del programma di installazione. Se questa proprietà viene modificata, sarà necessario aggiornare anche la proprietà ServiceName delle classi del programma di installazione.

  3. Per definire il funzionamento del servizio, impostare una delle proprietà seguenti.

    Proprietà Impostazione
    CanStop True per indicare che il servizio accetta le richieste di interruzione dell'esecuzione; false per impedire l'interruzione del servizio.
    CanShutdown True per indicare che il servizio richiede una notifica alla chiusura del computer su cui viene eseguito, consentendo la chiamata alla routine OnShutdown.
    CanPauseAndContinue True per indicare che il servizio accetta le richieste di sospensione o di ripresa dell'esecuzione; false per impedire la sospensione e la ripresa del servizio.
    CanHandlePowerEvent True per indicare che il servizio può gestire la notifica delle variazioni dello stato di alimentazione del computer; false per impedire al servizio di ricevere notifica di tali modifiche.
    AutoLog True per scrivere informazioni nel log eventi dell'applicazione quando il servizio esegue un'operazione; false per disabilitare questa funzionalità. Per altre informazioni, vedere Procedura: Registrare informazioni sui servizi. Nota: Per impostazione predefinita, la proprietà AutoLog è impostata su true.

    Nota

    Quando l'oggetto CanStop o CanPauseAndContinue è impostato su false, Gestione controllo servizi disabiliterà le opzioni di menu corrispondenti per arrestare, sospendere o continuare il servizio.

  4. Accedere all'editor di codice e definire il funzionamento desiderato per le routine OnStart e OnStop.

  5. Eseguire l'override di eventuali altri metodi per i quali si desidera definire la funzionalità.

  6. Aggiungere i programmi di installazione necessari per l'applicazione di servizio. Per altre informazioni, vedere Procedura: Aggiungere programmi di installazione all'applicazione di servizio.

  7. Compilare il progetto scegliendo Compila soluzione dal menu Compila.

    Nota

    Non è possibile eseguire un progetto di servizio premendo F5.

  8. Installare il servizio. Per altre informazioni, vedere How to: Install and Uninstall Services.

Vedi anche