ServiceBase.OnStart(String[]) Метод

Определение

При реализации в производном классе выполняется при отправке команды Start в службу диспетчером управления службами (SCM) или при запуске операционной системы (для службы, которая запускается автоматически). Указывает действия, выполняемые при запуске службы.

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

Параметры

args
String[]

Данные, передаваемые командой start.

Комментарии

Используется OnStart для указания обработки, возникающей при получении службой команды Start. OnStart — это метод, в котором указывается поведение службы. OnStart может принимать аргументы в качестве способа передачи данных, но это использование редко.

Предостережение

Не используйте конструктор для выполнения обработки, которая должна находиться в OnStart. Используется OnStart для обработки всех инициализаций службы. Конструктор вызывается при выполнении исполняемого файла приложения, а не при запуске службы. Исполняемый файл выполняется раньше OnStart. При продолжении, например, конструктор не вызывается снова, так как SCM уже содержит объект в памяти. Если OnStop ресурсы, выделенные в конструкторе, а не в OnStart, необходимые ресурсы не будут созданы повторно при вызове службы.

Службы можно настроить автоматически при перезагрузке компьютера, установив для установщика службы значение .>. В такой ситуации OnStart будет вызываться при запуске системы.

OnStart ожидается переопределение в производном классе. Чтобы служба была полезной и OnStartOnStop должна быть реализована в классе службы.

Аргументы инициализации процесса для службы в методе OnStart , а не в методе Main. Аргументы в массиве args параметров можно задать вручную в окне свойств службы в консоли служб. Аргументы, введенные в консоли, не сохраняются; Они передаются в службу по единовременной основе при запуске службы с панели управления. Аргументы, которые должны присутствовать при автоматическом запуске службы, можно поместить в строковое значение ImagePath для раздела реестра службы (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\< имя> службы). Аргументы из реестра можно получить с помощью GetCommandLineArgs метода, например: string[] imagePathArgs = Environment.GetCommandLineArgs();

Применяется к

См. также раздел