Share via


Cómo: Crear instancias de componentes ServiceController

Actualización: noviembre 2007

Puede utilizar el componente ServiceController para establecer conexión con los servicios existentes y controlar su comportamiento. Cuando cree una instancia de la clase ServiceController, configure sus propiedades de forma que interactúe con un servicio de Windows específico. A continuación, podrá utilizar la clase para iniciar el servicio, detenerlo y manipularlo de cualquier otra forma.

Lo más probable es que utilice ServiceController para tareas administrativas. Por ejemplo, podría crear una aplicación para Windows o una aplicación web de ASP.NET que envíe comandos personalizados a un servicio a través de una instancia del componente ServiceController. Esto resultaría útil, puesto que el Administrador de control de servicios no admite comandos personalizados.

Hay varias formas de crear una instancia del componente ServiceController:

  • Se puede arrastrar una instancia del componente ServiceController desde la ficha Componentes del Cuadro de herramientas hasta un formulario u otro diseñador.

  • Puede agregar un componente ServiceController al diseñador desde el Explorador de servidores.

  • Se puede crear una instancia de la clase ServiceController en el código.

Después de crear una instancia de ServiceController, deberá establecer en ella dos propiedades para identificar el servicio con el que interactúa: el nombre del equipo y el nombre del servicio que desea controlar.

Nota:

De forma predeterminada, la propiedad MachineName se establece en el equipo local, por lo que no tendrá que cambiarla a menos que desee que la instancia del componente apunte a otro equipo.

Nota:

Los cuadros de diálogo y los comandos de menú que se ven pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Para cambiar la configuración, seleccione Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear y configurar un componente ServiceController desde el Explorador de servidores

  1. En el Explorador de servidores, agregue el servidor que desea si no aparece en la lista. Para obtener más información, vea Cómo: Tener acceso e inicializar el Explorador de servidores o el Explorador de bases de datos.

  2. Expanda el nodo Servicios y, a continuación, busque el servicio donde desee realizar tareas administrativas.

  3. Haga clic con el botón secundario del mouse en el nombre del servicio y, a continuación, haga clic en Agregar al Diseñador.

    Aparecerá un componente ServiceController en el proyecto, configurado para interactuar con el servicio seleccionado.

Para crear y configurar un componente ServiceController desde el Cuadro de herramientas

  1. Vaya a la ficha Componentes del Cuadro de herramientas.

  2. Seleccione el icono ServiceController y arrástrelo hasta la superficie del diseñador del formulario o el componente correspondiente.

  3. Establezca las siguientes propiedades.

    Propiedad

    Parámetro

    MachineName

    Nombre del equipo en el que existe el servicio o "." para el equipo local.

    ServiceName

    Nombre del servicio con el que se desea interactuar.

    Sugerencia:

    Puede utilizar el Explorador de servidores para ver en qué debe establecer ServiceName para cualquier servicio dado. Seleccione el servicio que le interesa en el Explorador de servidores; el valor ServiceName correspondiente aparecerá en la ventana Propiedades.

Para crear y configurar mediante programación un componente ServiceController

  1. Cree una instancia de la clase ServiceController en el código.

  2. Establezca las propiedades MachineName y ServiceName para indicar el servicio que desea controlar.

    En el ejemplo siguiente se muestra cómo crear un componente ServiceController que interactúe con el servicio IIS Admin del equipo local. El componente consulta, a continuación, el servicio asociado con el controlador a fin de determinar si acepta comandos Detener; si es así, emite el comando. Este ejemplo es parte de un proyecto para Windows en el que se utiliza un formulario con varios botones para iniciar, detener y manipular de otras formas el servicio. Cada vez que se hace clic en un botón, se evalúa la condición y se muestra la información de estado en un control de etiqueta.

    Nota:

    Antes de que se ejecuten estos ejemplos, debe agregar una referencia a System.ServiceProcess.dll e incluir una instrucción Imports o using para el espacio de nombres 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.");
            }
        }
    

Vea también

Tareas

Cómo: Realizar tareas administrativas en los servicios

Cómo: Recuperar listas de servicios

Conceptos

Introducción a la comunicación con servicios existentes