ServiceBase.OnStart(String[]) Metodo

Definizione

Quando viene eseguita l'implementazione in una classe derivata, l'esecuzione avviene quando Gestione controllo servizi invia un comando Pause al servizio o quando viene avviato il sistema (nel caso di un servizio ad avvio automatico). Specifica le azioni da intraprendere all'avvio del servizio.

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())

Parametri

args
String[]

Dati passati dal comando di avvio.

Commenti

Usare OnStart per specificare l'elaborazione che si verifica quando il servizio riceve un comando Start. OnStart è il metodo in cui si specifica il comportamento del servizio. OnStart può accettare argomenti come modo per passare i dati, ma questo utilizzo è raro.

Attenzione

Non usare il costruttore per eseguire l'elaborazione che deve essere in OnStart. Usare OnStart per gestire tutte le inizializzazione del servizio. Il costruttore viene chiamato quando viene eseguito l'eseguibile dell'applicazione, non quando viene eseguito il servizio. Il file eseguibile viene eseguito prima OnStartdi . Quando si continua, ad esempio, il costruttore non viene chiamato di nuovo perché SCM contiene già l'oggetto in memoria. Se OnStop rilascia risorse allocate nel costruttore anziché in OnStart, le risorse necessarie non verranno create nuovamente la seconda volta che viene chiamato il servizio.

I servizi possono essere impostati per avviare automaticamente quando il computer viene riavviato impostando il StartType programma di installazione del servizio su Automatic. In tale situazione, OnStart verrà chiamato all'avvio del sistema.

OnStart è previsto che venga eseguito l'override nella classe derivata. Affinché il servizio sia utile OnStart e OnStop sia implementato nella classe di servizio.

Elaborare gli argomenti di inizializzazione per il servizio nel OnStart metodo, non nel metodo Main. Gli argomenti nella args matrice di parametri possono essere impostati manualmente nella finestra delle proprietà per il servizio nella console di Servizi. Gli argomenti immessi nella console non vengono salvati; vengono passati al servizio una sola volta quando il servizio viene avviato dal pannello di controllo. Gli argomenti che devono essere presenti quando il servizio viene avviato automaticamente possono essere inseriti nel valore stringa ImagePath per la chiave del Registro di sistema del servizio (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> del servizio). È possibile ottenere gli argomenti dal Registro di sistema usando il GetCommandLineArgs metodo, ad esempio: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Si applica a

Vedi anche