Condividi tramite


Procedura: scrivere servizi a livello di codice

Se si sceglie di non utilizzare il modello di progetto dei servizi Windows, è possibile scrivere i propri servizi impostando l'ereditarietà e altri elementi di infrastruttura. Quando si crea un servizio a livello di codice, è necessario attenersi a diversi passaggi gestiti automaticamente nel modello:

  • Impostare la classe di servizio in modo che erediti dalla classe ServiceBase.

  • Creare un metodo Main per il progetto di servizio che definisca i servizi da eseguire e chiami il metodo Run.

  • Eseguire l'override delle routine OnStart e OnStop e scrivere il codice che devono eseguire.

    Nota

    Il modello Servizio Windows e le relative funzionalità non sono disponibili nell'edizione Standard di Visual Studio.

Per scrivere un servizio a livello di codice

  1. Creare un progetto vuoto, quindi creare un riferimento agli spazi dei nomi necessari seguendo le istruzioni riportate di seguito.

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Riferimenti e scegliere Aggiungi riferimento.

    2. Nella scheda .NET Framework scorrere su System.dll e fare clic su Seleziona.

    3. Scorrere su System.ServiceProcess.dll e fare clic su Seleziona.

    4. Scegliere OK.

  2. Aggiungere una classe, quindi configurarla in modo che erediti dalla classe ServiceBase:

    Public Class UserService1
       Inherits System.ServiceProcess.ServiceBase
    End Class
    
    public class UserService1 : System.ServiceProcess.ServiceBase  
    {
    }
    
  3. Per configurare la classe di servizio, aggiungere il codice seguente:

    Public Sub New()
        Me.ServiceName = "MyService2"
        Me.CanStop = True
        Me.CanPauseAndContinue = True
        Me.AutoLog = True
    End Sub
    
        public UserService1() 
        {
            this.ServiceName = "MyService2";
            this.CanStop = true;
            this.CanPauseAndContinue = true;
            this.AutoLog = true;
        }
    
  4. Creare un metodo Main per la classe, quindi utilizzarlo per definire il servizio che sarà contenuto nella classe. Il nome della classe è userService1:

    Shared Sub Main()
      System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
        public static void Main()
        {
            System.ServiceProcess.ServiceBase.Run(new UserService1());
        }
    
  5. Eseguire l'override del metodo OnStart, quindi scrivere il codice da eseguire all'avvio del servizio.

    Protected Overrides Sub OnStart(ByVal args() As String)
      ' Insert code here to define processing.
    End Sub
    
        protected override void OnStart(string[] args)
        {
            // Insert code here to define processing.
        }
    
  6. Eseguire l'override degli altri metodi per i quali si desidera definire un comportamento personalizzato e scrivere il codice appropriato per ciascuno di essi.

  7. Aggiunta dei programmi di installazione necessari per l'applicazione di servizio. Per ulteriori informazioni, vedere Procedura: aggiungere programmi di installazione all'applicazione di servizio.

  8. Compilare il progetto. Per effettuare questa operazione, scegliere Compila soluzione dal menu Compila.

    Nota

    Non è possibile eseguire un progetto di servizio premendo F5.

  9. Creare un progetto di installazione e le funzionalità personalizzate necessarie per l'installazione del servizio. Per un esempio, vedere Procedura dettagliata: creazione di un'applicazione di servizio Windows in Progettazione componenti.

  10. Installare il servizio. Per ulteriori informazioni, vedere Procedura: installare e disinstallare servizi.

Vedere anche

Attività

Procedura: creare servizi Windows

Procedura: aggiungere programmi di installazione all'applicazione di servizio

Procedura: registrare informazioni sui servizi

Procedura dettagliata: creazione di un'applicazione di servizio Windows in Progettazione componenti

Procedura dettagliata: creazione di un'azione personalizzata

Concetti

Introduzione alle applicazioni di servizio Windows

Progetti di installazione e distribuzione