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