Compartir a través de


ServiceBase.OnStart(String[]) Método

Definición

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.

protected:
 virtual void OnStart(cli::array <System::String ^> ^ args);
protected virtual void OnStart (string[] args);
abstract member OnStart : string[] -> unit
override this.OnStart : string[] -> unit
Protected Overridable Sub OnStart (args As String())

Parámetros

args
String[]

Datos pasados por el comando Iniciar.

Comentarios

Use OnStart para especificar el procesamiento que se produce cuando el servicio recibe un comando Start. OnStart es el método en el que se especifica el comportamiento del servicio. OnStart puede tomar argumentos como una manera de pasar datos, pero este uso es poco frecuente.

Precaución

No use el constructor para realizar el procesamiento que debe estar en OnStart. Use OnStart para controlar toda la inicialización del servicio. Se llama al constructor cuando se ejecuta el ejecutable de la aplicación, no cuando se ejecuta el servicio. El ejecutable se ejecuta antes OnStartde . Cuando continúa, por ejemplo, no se vuelve a llamar al constructor porque el SCM ya contiene el objeto en memoria. Si OnStop libera los recursos asignados en el constructor en lugar de en OnStart, los recursos necesarios no se volverán a crear la segunda vez que se llame al servicio.

Los servicios se pueden establecer para que se inicien automáticamente cuando el equipo se reinicie estableciendo en el StartType instalador del servicio en Automatic. En tal situación, OnStart se llamaría al inicio del sistema.

OnStart se espera que se invalide en la clase derivada. Para que el servicio sea útil OnStart y OnStop ambos deben implementarse en la clase de servicio.

Procese los argumentos de inicialización del servicio en el OnStart método , no en el método Main. Los argumentos de la args matriz de parámetros se pueden establecer manualmente en la ventana de propiedades del servicio en la consola de Servicios. Los argumentos especificados en la consola no se guardan; se pasan al servicio una sola vez cuando se inicia el servicio desde el panel de control. Los argumentos que deben estar presentes cuando el servicio se inicia automáticamente se pueden colocar en el valor de cadena ImagePath para la clave del Registro del servicio (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>). Puede obtener los argumentos del Registro mediante el GetCommandLineArgs método , por ejemplo: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Se aplica a

Consulte también