Condividi tramite


Procedura: creare istanze del componente ServiceController

Aggiornamento: novembre 2007

È possibile utilizzare il componente ServiceController per connettersi ai servizi esistenti e controllarne il comportamento. Quando si crea un'istanza della classe ServiceController, se ne impostano le proprietà affinché interagisca con uno specifico servizio Windows. È quindi possibile utilizzare il componente per avviare, interrompere e modificare in altro modo il servizio.

È probabile che si utilizzi un componente ServiceController in una capacità amministrativa. È ad esempio possibile creare un'applicazione Web Windows o ASP.NET per l'invio di comandi personalizzati a un servizio mediante un'istanza del componente ServiceController. Questa operazione è utile in quanto il gestore di controllo del servizio non supporta i comandi personalizzati.

Sono disponibili diversi modi per creare un'istanza del componente ServiceController:

  • È possibile trascinare un’istanza del componente ServiceController dalla scheda Componenti della Casella degli strumenti in un form o in un’altra finestra di progettazione.

  • È possibile aggiungere un componente ServiceController alla finestra di progettazione da Esplora server.

  • È possibile creare un'istanza della classe ServiceController nel codice.

Dopo aver creato un'istanza di ServiceController, è necessario impostare due proprietà su di essa per identificare il servizio con cui interagisce: il nome del computer e il nome del servizio che si desidera controllare.

Nota:

Per impostazione predefinita, la proprietà MachineName viene impostata sul computer locale. Non è pertanto necessario modificarla a meno che non si desideri impostare l'istanza del componente in modo da puntare a un altro computer.

Nota:

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida in linea a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni nel menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per creare e configurare un componente ServiceController da Esplora server

  1. In Esplora server aggiungere il server desiderato, se non è presente nell'elenco. Per ulteriori informazioni, vedere Procedura: accedere e inizializzare Esplora server/Esplora database.

  2. Espandere il nodo Servizi, quindi individuare il servizio in cui si desidera eseguire attività amministrative.

  3. Fare clic con il pulsante destro del mouse sul nome del servizio, quindi scegliere Aggiungi a finestra di progettazione.

    Nel progetto verrà visualizzato un componente ServiceController, configurato in modo da interagire con il servizio selezionato.

Per creare e configurare un componente ServiceController dalla Casella degli strumenti

  1. Accedere alla scheda Componenti della Casella degli strumenti.

  2. Selezionare l'icona ServiceController e trascinarla all'interno dell'area di progettazione del form o del componente.

  3. Impostare le proprietà indicate di seguito.

    Proprietà

    Impostazione

    MachineName

    Il nome del computer in cui risiede il servizio oppure "." per il computer locale.

    ServiceName

    Il nome del servizio con cui si desidera interagire.

    Suggerimento:

    È possibile utilizzare Esplora server per visualizzare l'impostazione appropriata della proprietà ServiceName per ogni determinato servizio. Selezionando il servizio desiderato in Esplora server verrà visualizzato nella finestra Proprietà il relativo ServiceName.

Per creare e configurare a livello di codice un componente ServiceController

  1. Creare un'istanza della classe ServiceController nel codice.

  2. Impostare le proprietà MachineName e ServiceName per indicare il servizio che si desidera controllare.

    Nell'esempio riportato di seguito viene illustrato come creare un componente ServiceController che interagisce con il servizio IIS Admin sul computer locale. Il componente esegue quindi una query sul servizio associato al controller per stabilire se è in grado di accettare i comandi Stop e, in caso affermativo, esegue il comando. Questo esempio fa parte di un progetto Windows in cui un form con vari pulsanti viene utilizzato per avviare, interrompere e modificare in altro modo il servizio. Ogni volta che si fa clic su un pulsante, viene valutata la condizione e le informazioni sullo stato sono visualizzate in un controllo etichetta.

    Nota:

    Affinché sia possibile eseguire tali esempi, è necessario aggiungere un riferimento a System.ServiceProcess.dll e includere un'istruzione Imports o using per lo spazio dei nomi System.ServiceProcess.

    Sub Main()
        Dim myController As _
           New System.ServiceProcess.ServiceController("IISAdmin")
    
        If myController.CanStop Then
            Debug.WriteLine(myController.ServiceName & " can be stopped.")
        Else
            Debug.WriteLine(myController.ServiceName & " cannot stop.")
        End If
    End Sub
    
     public static void Main(string[] args)
        {
            System.ServiceProcess.ServiceController myController =
               new System.ServiceProcess.ServiceController("IISAdmin");
            if (myController.CanStop)
            {
                System.Diagnostics.Debug.WriteLine(
                   myController.DisplayName + "  can be stopped.");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine(
                   myController.DisplayName + "  cannot stop.");
            }
        }
    

Vedere anche

Attività

Procedura: eseguire attività amministrative relative ai servizi

Procedura: recuperare gli elenchi dei servizi

Concetti

Introduzione alla comunicazione con i servizi esistenti