ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) Method

Definição

Quando implementado em uma classe derivada, é executado quando um comando Iniciar é enviado para o serviço pelo SCM (Gerenciador de Controle de Serviço) ou quando o sistema operacional é iniciado (para um serviço que inicia automaticamente).When implemented in a derived class, executes when a Start command is sent to the service by the Service Control Manager (SCM) or when the operating system starts (for a service that starts automatically). Especifica ações a serem tomadas quando o serviço for iniciado.Specifies actions to take when the service starts.

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[]

Dados passados pelo comando de início.Data passed by the start command.

Comentários

Use OnStart para especificar o processamento que ocorre quando o serviço recebe um comando Start.Use OnStart to specify the processing that occurs when the service receives a Start command. OnStart é o método em que você especificar o comportamento do serviço.OnStart is the method in which you specify the behavior of the service. OnStart pode levar argumentos como uma maneira de transmitir dados, mas esse uso é raro.OnStart can take arguments as a way to pass data, but this usage is rare.

Cuidado

Não use o construtor para executar o processamento deve estar no OnStart.Do not use the constructor to perform processing that should be in OnStart. Use OnStart para lidar com toda a inicialização do serviço.Use OnStart to handle all initialization of your service. O construtor é chamado quando o executável do aplicativo é executado, não quando o serviço é executado.The constructor is called when the application's executable runs, not when the service runs. O executável será executado antes de OnStart.The executable runs before OnStart. Quando você continuar, por exemplo, o construtor não é chamado novamente porque o SCM já contém o objeto na memória.When you continue, for example, the constructor is not called again because the SCM already holds the object in memory. Se OnStop libera recursos alocados no construtor, em vez de em OnStart, os recursos necessários não seriam criados novamente na segunda vez que o serviço é chamado.If OnStop releases resources allocated in the constructor rather than in OnStart, the needed resources would not be created again the second time the service is called.

Serviços podem ser definidos para iniciar automaticamente quando o computador for reiniciado, definindo o StartType no instalador do serviço para Automatic.Services can be set to start automatically when the computer reboots by setting the StartType on the service's installer to Automatic. Nessa situação, OnStart seria chamado na inicialização do sistema.In such a situation, OnStart would be called at system startup.

OnStart deve ser substituído na classe derivada.OnStart is expected to be overridden in the derived class. Para o serviço para ser útil, OnStart e OnStop devem ser implementadas em sua classe de serviço.For the service to be useful, OnStart and OnStop should both be implemented in your service class.

Processar argumentos de inicialização para o serviço no OnStart método, não no método Main.Process initialization arguments for the service in the OnStart method, not in the Main method. Os argumentos no args matriz de parâmetros pode ser definida manualmente na janela Propriedades para o serviço no console de serviços.The arguments in the args parameter array can be set manually in the properties window for the service in the Services console. Os argumentos digitados no console do não são salvas; eles são passados para o serviço de uma única vez quando o serviço é iniciado no painel de controle.The arguments entered in the console are not saved; they are passed to the service on a one-time basis when the service is started from the control panel. Os argumentos que devem estar presente quando o serviço é iniciado automaticamente podem ser colocados no valor de cadeia de caracteres de ImagePath para a chave do registro do serviço (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ < nome do serviço >).Arguments that must be present when the service is automatically started can be placed in the ImagePath string value for the service's registry key (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>). Você pode obter os argumentos do registro usando o GetCommandLineArgs método, por exemplo: string[] imagePathArgs = Environment.GetCommandLineArgs();.You can obtain the arguments from the registry using the GetCommandLineArgs method, for example: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Aplica-se a

Veja também