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

Определение

Если этот метод реализован в производном классе, он выполняется при передаче службе команды запуска диспетчером служб или при запуске операционной системы (для служб, запускаемых автоматически). Задает действия, подлежащие выполнению при запуске службы.

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

Данные, передаваемые командой запуска.

Комментарии

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

Внимание!

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

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

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

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

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

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