Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase ServiceBase

 

Publicado: octubre de 2016

Proporciona una clase base para un servicio que existirá como parte de una aplicación de servicio. ServiceBase debe derivarse de, al crear una nueva clase de servicio.

Espacio de nombres:   System.ServiceProcess
Ensamblado:  System.ServiceProcess (en System.ServiceProcess.dll)

System::Object
  System::MarshalByRefObject
    System.ComponentModel::Component
      System.ServiceProcess::ServiceBase

public ref class ServiceBase : Component

NombreDescripción
System_CAPS_pubmethodServiceBase()

Crea una nueva instancia de la clase ServiceBase.

NombreDescripción
System_CAPS_pubpropertyAutoLog

Indica si se debe notificar los comandos iniciar, detener, pausar y continuar en el registro de eventos.

System_CAPS_pubpropertyCanHandlePowerEvent

Obtiene o establece un valor que indica si el servicio puede controlar notificaciones de cambios de estado de energía de equipo.

System_CAPS_pubpropertyCanHandleSessionChangeEvent

Obtiene o establece un valor que indica si el servicio puede controlar eventos de cambio de sesión recibidos de una sesión de Terminal Server.

System_CAPS_pubpropertyCanPauseAndContinue

Obtiene o establece un valor que indica si se puede pausar y reanudar el servicio.

System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyCanShutdown

Obtiene o establece un valor que indica si se debe notificar al servicio cuando se apaga el sistema.

System_CAPS_pubpropertyCanStop

Obtiene o establece un valor que indica si el servicio puede detenerse después de haberse iniciado.

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_pubpropertyEventLog

Obtiene un registro de eventos que se puede utilizar para escribir la notificación de llamadas de comandos de servicio, como iniciar y detener, en el registro de eventos de aplicación.

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyExitCode

Obtiene o establece el código de salida para el servicio.

System_CAPS_protpropertyServiceHandle

Obtiene el identificador del control de servicio para el servicio.

System_CAPS_pubpropertyServiceName

Obtiene o establece el nombre corto utilizado para identificar el servicio en el sistema.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

NombreDescripción
System_CAPS_pubmethodCreateObjRef(Type^)

Crea un objeto que contiene toda la información pertinente necesaria para generar a un proxy utilizado para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Se deshace de los recursos (distintos de la memoria) que usa ServiceBase.(Invalida Component::Dispose(Boolean)).

System_CAPS_pubmethodEquals(Object^)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodGetService(Type^)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodOnContinue()

Cuando se implementa en una clase derivada, OnContinue se ejecuta cuando se envía un comando Continuar al servicio mediante el Administrador de Control de servicios (SCM). Especifica las acciones que deben realizarse cuando un servicio reanuda el funcionamiento normal después de una pausa.

System_CAPS_protmethodOnCustomCommand(Int32)

Cuando se implementa en una clase derivada, OnCustomCommand se ejecuta cuando el Administrador de Control de servicios (SCM) pasa un comando personalizado al servicio. Especifica las acciones que deben realizarse cuando se produce un comando con el valor del parámetro especificado.

System_CAPS_protmethodOnPause()

Cuando se implementa en una clase derivada, se ejecuta cuando se envía un comando Pausar al servicio mediante el Administrador de Control de servicios (SCM). Especifica las acciones que deben realizarse cuando un servicio se detiene.

System_CAPS_protmethodOnPowerEvent(PowerBroadcastStatus)

Cuando se implementa en una clase derivada, se ejecuta cuando el estado de alimentación del equipo ha cambiado. Esto se aplica a los equipos portátiles cuando entran en modo suspendido, que no es el mismo que un cierre del sistema.

System_CAPS_protmethodOnSessionChange(SessionChangeDescription)

Se ejecuta cuando se recibe un evento de cambio de una sesión de Terminal Server.

System_CAPS_protmethodOnShutdown()

Cuando se implementa en una clase derivada, se ejecuta cuando se apaga el sistema. Especifica qué debe ocurrir justo antes del cierre del sistema.

System_CAPS_protmethodOnStart(array<String^>^)

Cuando se implementa en una clase derivada, se ejecuta cuando se envía un comando de inicio al servicio mediante el Administrador de Control de servicios (SCM) o cuando se inicia el sistema operativo (para un servicio que se inicia automáticamente). Especifica las acciones que deben realizarse cuando se inicia el servicio.

System_CAPS_protmethodOnStop()

Cuando se implementa en una clase derivada, se ejecuta cuando se envía un comando Detener al servicio mediante el Administrador de Control de servicios (SCM). Especifica las acciones que deben realizarse cuando un servicio deja de ejecutarse.

System_CAPS_pubmethodRequestAdditionalTime(Int32)

Solicita tiempo adicional para una operación pendiente.

System_CAPS_pubmethodSystem_CAPS_staticRun(ServiceBase^)

Registra el ejecutable para un servicio con el Administrador de Control de servicios (SCM).

System_CAPS_pubmethodSystem_CAPS_staticRun(array<ServiceBase^>^)

Registra el ejecutable para varios servicios con el Administrador de Control de servicios (SCM).

System_CAPS_pubmethodServiceMainCallback(Int32, IntPtr)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Registra el controlador de comandos e inicia el servicio.

System_CAPS_pubmethodStop()

Detiene el servicio en ejecución.

System_CAPS_pubmethodToString()

Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticMaxNameLength

Indica el tamaño máximo de un nombre de servicio.

NombreDescripción
System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

Derivar de ServiceBase al definir la clase de servicio en una aplicación de servicio. Cualquier servicio útil reemplaza el OnStart y OnStop métodos. Para obtener funcionalidad adicional, puede reemplazar OnPause y OnContinue con un comportamiento específico en respuesta a cambios en el estado del servicio.

Un servicio es un ejecutable de larga duración que no admite una interfaz de usuario y que puede no ejecutarse bajo la cuenta de usuario que inició sesión. El servicio puede ejecutarse sin que ningún usuario iniciar sesión en el equipo.

De forma predeterminada, los servicios se ejecutan bajo la cuenta de sistema, que no es la misma que la cuenta de administrador. No puede cambiar los derechos de la cuenta del sistema. Como alternativa, puede utilizar un ServiceProcessInstaller para especificar una cuenta de usuario bajo la que se ejecutará el servicio.

Un ejecutable puede contener más de un servicio, pero debe contener un independiente ServiceInstaller para cada servicio. El ServiceInstaller instancia registra el servicio en el sistema. El instalador también asocia cada servicio a un registro de eventos que puede utilizar para registrar comandos de servicio. El main() función del ejecutable define qué servicios deben ejecutarse. El directorio de trabajo actual del servicio es el directorio del sistema, no en el directorio donde se encuentra el archivo ejecutable.

Cuando se inicia un servicio, el sistema busca el ejecutable y ejecuta el OnStart método de ese servicio, contenido dentro del ejecutable. Sin embargo, ejecuta el servicio no es lo mismo que ejecutar el archivo ejecutable. El ejecutable solamente carga el servicio. Se obtiene acceso al servicio (por ejemplo, iniciar y detener) mediante el Administrador de Control de servicios.

El ejecutable llama el ServiceBase derivado de tiempo de la clase constructor la primera se llama a Start para el servicio. El OnStart se denomina método de control de comandos inmediatamente después de que se ejecute el constructor. El constructor no se ejecuta después de la primera vez que se ha cargado el servicio, por lo que es necesario separar el procesamiento realizado por el constructor del realizado por OnStart. Todos los recursos que se pueden liberar por OnStop deben crearse en OnStart. Creación de recursos en el constructor impide que se creen adecuadamente si se inicia el servicio después de OnStop ha liberado los recursos.

El Administrador de Control de servicios (SCM) proporciona una forma de interactuar con el servicio. Puede utilizar el SCM para pasar iniciar, detener, pausar, continuar o comandos personalizados al servicio. El SCM utiliza los valores de CanStop y CanPauseAndContinue para determinar si el servicio acepta detener, pausar o continuar comandos. Detener, pausar y continuar están habilitadas en solo si en del SCM contexto menús la propiedad correspondiente CanStop o CanPauseAndContinue es true en la clase de servicio. Si está habilitada, el comando se pasa al servicio, y OnStop, OnPause, o OnContinue se llama. Si CanStop, CanShutdown, o CanPauseAndContinue es false, el método de control de comandos correspondiente (como OnStop) no se procesarán, incluso si ha implementado el método.

Puede usar el ServiceController clase para realizar mediante programación lo que el SCM realiza mediante una interfaz de usuario. Puede automatizar las tareas disponibles en la consola. Si CanStop, CanShutdown, o CanPauseAndContinue es true pero no se implementa un método de control de comandos correspondiente (como OnStop) el sistema produce una excepción y omite el comando.

Debe implementar OnStart, OnStop, o cualquier otro método en ServiceBase. Sin embargo, el comportamiento del servicio se describe en OnStart, por lo que, como mínimo, se debe invalidar este miembro. El main() función del ejecutable registra el servicio en el ejecutable con el Administrador de Control de servicio mediante una llamada a la Run (método). El ServiceName propiedad de la ServiceBase objeto pasa a la Run método debe coincidir con el ServiceName propiedad del instalador del servicio para ese servicio.

Puede usar InstallUtil.exe para instalar servicios del sistema.

System_CAPS_noteNota

Puede especificar un registro que no sea el registro de eventos de aplicación para recibir notificación de llamadas de servicio, pero no el AutoLog ni EventLog propiedad se puede escribir en un registro personalizado. Establecer AutoLog a false Si no desea utilizar el registro automático.

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: