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