ServiceBase.OnStart(String[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파생 클래스에서 구현되는 경우 SCM(Service Control Manager)에서 시작 명령을 서비스로 보내거나 운영 체제가 시작될 때(자동으로 시작되는 서비스의 경우) 실행됩니다. 서비스가 시작될 때 수행할 작업을 지정합니다.
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 . OnStart 는 서비스의 동작을 지정하는 메서드입니다. OnStart 는 데이터를 전달하는 방법으로 인수를 사용할 수 있지만 이 사용법은 드뭅니다.
Caution
에 있어야 OnStart하는 처리를 수행 하려면 생성자를 사용 하지 마십시오. 서비스의 모든 초기화를 처리하는 데 사용합니다 OnStart . 생성자는 서비스가 실행되는 시점이 아니라 애플리케이션의 실행 파일이 실행되면 호출됩니다. 실행 파일 OnStart은 . 예를 들어 계속하면 SCM에 이미 개체가 메모리에 있기 때문에 생성자가 다시 호출되지 않습니다. 생성자가 아닌 OnStop생성자에 할당된 리소스를 해제하는 경우 OnStart 서비스를 두 번째로 호출할 때 필요한 리소스가 다시 생성되지 않습니다.
서비스의 설치 관리자를 설정하여 컴퓨터가 다시 StartType 부팅될 때 서비스가 자동으로 시작되도록 Automatic설정할 수 있습니다. 이러한 상황에서는 OnStart 시스템 시작 시 호출됩니다.
OnStart 는 파생 클래스에서 재정의될 것으로 예상됩니다. 서비스가 유용 OnStart 하고 OnStop 둘 다 서비스 클래스에서 구현되어야 합니다.
Main 메서드가 아닌 메서드의 OnStart 서비스에 대한 초기화 인수를 처리합니다. 매개 변수 배열의 args 인수는 서비스 콘솔의 서비스에 대한 속성 창에서 수동으로 설정할 수 있습니다. 콘솔에 입력된 인수는 저장되지 않습니다. 제어판에서 서비스를 시작할 때 일회성으로 서비스에 전달됩니다. 서비스가 자동으로 시작될 때 존재해야 하는 인수는 서비스의 레지스트리 키(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<서비스 이름>)에 대한 ImagePath 문자열 값에 배치할 수 있습니다. 다음과 같은 GetCommandLineArgs메서드를 사용하여 레지스트리에서 인수를 string[] imagePathArgs = Environment.GetCommandLineArgs(); 가져올 수 있습니다.