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

ServiceBase (Clase)

 

Proporciona una clase base para un servicio que existirá como parte de una aplicación de servicio.Deberá derivarse de ServiceBase cuando se cree una nueva clase de servicio.

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


public class ServiceBase : Component

NombreDescripción
System_CAPS_pubmethodServiceBase()

Crea una nueva instancia de la clase ServiceBase.

NombreDescripción
System_CAPS_pubpropertyAutoLog

Indica si los comandos Iniciar, Detener, Pausar y Continuar deben notificarse en el registro de eventos.

System_CAPS_pubpropertyCanHandlePowerEvent

Obtiene o establece un valor que indica si el servicio puede controlar notificaciones de los cambios de estado de la alimentación del 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 generar un evento.(Heredado de Component.)

System_CAPS_pubpropertyCanShutdown

Obtiene o establece un valor que indica si se debe informar al servicio de que el sistema se está cerrando.

System_CAPS_pubpropertyCanStop

Obtiene o establece un valor que indica si puede detenerse el servicio una vez se ha iniciado.

System_CAPS_pubpropertyContainer

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

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si 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 asociados a 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 servicios 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 ISite de Component.(Heredado de Component.)

NombreDescripción
System_CAPS_pubmethodCreateObjRef(Type)

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

System_CAPS_pubmethodDispose()

Libera todos los recursos utilizados por Component.(Heredado de Component.)

System_CAPS_protmethodDispose(Boolean)

Elimina los recursos (que no sean memoria) utilizados por ServiceBase.(Reemplaza a 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 objeto Component durante la recolección de elementos no utilizados.(Heredado de Component.)

System_CAPS_pubmethodGetHashCode()

Sirve como una función hash para un tipo en particular. (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 objeto MarshalByRefObject actual.(Heredado de MarshalByRefObject.)

System_CAPS_protmethodOnContinue()

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

System_CAPS_protmethodOnCustomCommand(Int32)

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

System_CAPS_protmethodOnPause()

Si se implementa en una clase derivada, se ejecuta cuando el Administrador de control de servicios (SCM, Service Control Manager) envía un comando Pausar al servicio.Especifica las acciones que deben realizarse cuando un servicio realiza una pausa.

System_CAPS_protmethodOnPowerEvent(PowerBroadcastStatus)

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

System_CAPS_protmethodOnSessionChange(SessionChangeDescription)

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

System_CAPS_protmethodOnShutdown()

Si se implementa en una clase derivada, se ejecuta cuando el sistema se está cerrando.Especifica lo que tiene que suceder inmediatamente antes de que se cierre el sistema.

System_CAPS_protmethodOnStart(String[])

Si se implementa en una clase derivada, se ejecuta cuando el Administrador de control de servicios (SCM, Service Control Manager) envía un comando Iniciar al servicio o cuando se inicia el sistema operativo (en el caso de un servicio que se inicia de forma automática).Especifica las acciones que deben realizarse cuando se inicia el servicio.

System_CAPS_protmethodOnStop()

Si se implementa en una clase derivada, se ejecuta cuando el Administrador de control de servicios (SCM, Service Control Manager) envía a un comando Detener al servicio.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, Service Control Manager).

System_CAPS_pubmethodSystem_CAPS_staticRun(ServiceBase[])

Registra el ejecutable para varios servicios con el Administrador de control de servicios (SCM, Service Control Manager).

System_CAPS_pubmethodServiceMainCallback(Int32, IntPtr)

Esta API admite la infraestructura de product y no está pensada para usarse directamente desde su 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 objeto String que contiene el nombre del objeto Component, en caso de que exista.Este método no debe reemplazarse.(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 al método Dispose. (Heredado de Component.)

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

Un servicio es un ejecutable de ejecución larga que no admite una interfaz de usuario y que puede no ejecutarse en la cuenta de usuario que ha iniciado la sesión.El servicio puede ejecutarse sin que ningún usuario haya iniciado una sesión en el equipo.

De forma predeterminada, los servicios se ejecutan en la cuenta de sistema, que no es igual que la cuenta de administrador.No puede cambiar los derechos de la cuenta de sistema.De modo alternativo, puede utilizar ServiceProcessInstaller para especificar una cuenta de usuario en la que se ejecutará el servicio.

Un ejecutable puede contener más de un servicio, pero tiene que contener un componente ServiceInstaller independiente para cada uno de los servicios.La instancia de ServiceInstaller registra el servicio en el sistema.Asimismo, el instalador asocia cada servicio a un registro de eventos que puede utilizar para registrar comandos de servicio.La función main() del ejecutable define qué servicios deben ejecutarse.El directorio de trabajo actual del servicio es el directorio del sistema, no el directorio en el que está situado el ejecutable.

Cuando se inicia un servicio, el sistema busca el ejecutable y ejecuta el método OnStart de ese servicio, contenido dentro del ejecutable.Sin embargo, ejecutar el servicio no equivale a ejecutar el ejecutable.El ejecutable solamente carga el servicio.Se obtiene acceso al servicio (por ejemplo, lo inicia y lo detiene) mediante el Administrador de control de servicios.

El ejecutable llama al constructor de la clase derivada de ServiceBase la primera vez que se llama a Start para el servicio.Se llama al método de control de comandos OnStart inmediatamente después de que se ejecute el constructor.El constructor no se vuelve a ejecutar 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.Cualquier recurso que OnStop pueda liberar tiene que crearse en OnStart.La creación de recursos en el constructor impide que estos se creen adecuadamente si se inicia de nuevo el servicio una vez que OnStop ha liberado los recursos.

El Administrador de control de servicios (SCM, Service Control Manager) permite la interacción con el servicio.Puede utilizar el SCM para pasar comandos Iniciar, Detener, Pausar, Continuar o comandos personalizados al servicio.El SCM utiliza los valores de las propiedades CanStop y CanPauseAndContinue para determinar si el servicio acepta los comandos Detener, Pausar o Continuar.Detener, Pausar y Continuar sólo estarán habilitados en los menús contextuales del SCM si la propiedad CanStop o CanPauseAndContinue correspondiente es true en la clase de servicio.Si está habilitado, el comando se pasa al servicio y se llama a OnStop, OnPause o OnContinue.Si la propiedad CanStop, CanShutdown o CanPauseAndContinue es false, no se procesará el método de control de comandos correspondiente (como OnStop), aunque se haya implementado el método.

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

No tiene que implementar el método OnStart, OnStop ni ningún otro método en ServiceBase.Sin embargo, el comportamiento del servicio se describe en OnStart, por lo que, como mínimo, tendrá que reemplazarse este miembro.La función main() del ejecutable registra el servicio en el ejecutable con el Administrador de control de servicios; para ello, llama al método Run.La propiedad ServiceName del objeto ServiceBase pasada al método Run debe coincidir con la propiedad ServiceName del instalador de ese servicio.

Puede utilizar InstallUtil.exe para instalar servicios en el sistema.

System_CAPS_noteNota

Es posible especificar un registro que no sea el registro de eventos de aplicación para recibir la notificación de llamadas de servicio, pero ni la propiedad AutoLog ni la propiedad EventLog pueden escribir en un registro personalizado.Establezca AutoLog en false si no desea utilizar el registro automático.

.NET Framework
Disponible desde 1.1

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar: