Compartir a través de


Cómo: Crear servicios mediante programación

Si elige no utilizar la plantilla de proyecto Servicio de Windows, puede escribir sus propios servicios configurando la herencia y otros elementos de infraestructura personalmente. Cuando cree un servicio mediante programación, deberá ejecutar varios pasos que, de no ser así, la plantilla controlaría en su lugar:

  • Debe configurar la clase de servicio para heredar de la clase ServiceBase.

  • Debe crear un método Main para el proyecto de servicio que defina los servicios que se van a ejecutar y llame al método Run de éstos.

  • Debe reemplazar los procedimientos OnStart y OnStop y escribir en ellos el código que desea que ejecuten.

    Nota

    La plantilla Servicio de Windows con su funcionalidad asociada no está disponible en Visual Studio Standard.

Para escribir un servicio mediante programación

  1. Cree un proyecto vacío y cree una referencia a los espacios de nombres necesarios siguiendo estos pasos:

    1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nodo Referencias y haga clic en Agregar referencia.

    2. En la ficha .NET Framework, desplácese a System.dll y haga clic en Seleccionar.

    3. Desplácese a System.ServiceProcess.dll y haga clic en Seleccionar.

    4. Haga clic en Aceptar.

  2. Agregue una clase y configúrela para que herede de ServiceBase:

    Public Class UserService1
       Inherits System.ServiceProcess.ServiceBase
    End Class
    
    public class UserService1 : System.ServiceProcess.ServiceBase  
    {
    }
    
  3. Agregue el código siguiente para configurar la clase de servicio:

    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. Cree un método Main para su clase y utilícelo para definir el servicio que contendrá la clase; userService1 es el nombre de la clase:

    Shared Sub Main()
      System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
        public static void Main()
        {
            System.ServiceProcess.ServiceBase.Run(new UserService1());
        }
    
  5. Reemplace el método OnStart y defina los procesos que desea que se produzcan cuando se inicie el servicio.

    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. Reemplace los demás métodos para los que desea definir procesos personalizados y escriba código para determinar las acciones que el servicio deberá ejecutar en cada caso.

  7. Agregue los instaladores necesarios para su aplicación de servicio. Para obtener más información, vea Cómo: Agregar instaladores a una aplicación de servicio.

  8. Genere el proyecto seleccionando Generar solución en el menú Generar.

    Nota

    No presione F5 para ejecutar el proyecto; no es posible ejecutar de esta forma un proyecto de servicio.

  9. Cree un proyecto de instalación y las acciones personalizadas para instalar el servicio. Para obtener un ejemplo, vea Tutorial: Crear una aplicación de servicios de Windows en el Diseñador de componentes.

  10. Instale el servicio. Para obtener más información, vea Cómo: Instalar y desinstalar servicios.

Vea también

Tareas

Cómo: Crear servicios de Windows

Cómo: Agregar instaladores a una aplicación de servicio

Cómo: Registrar información sobre servicios

Tutorial: Crear una aplicación de servicios de Windows en el Diseñador de componentes

Tutorial: Crear una acción personalizada

Conceptos

Introducción a las aplicaciones de servicios de Windows

Proyectos de instalación e implementación