윈도우 서비스 프로그램 예제


서비스 제어 관리자, 서버 탐색기 또는 코드에서 메서드를 호출하여 서비스를 일시 중지, 중지 또는 다시 시작할 수 있습니다. 이러한 각 작업은 서비스에서 연결된 프로시저를 호출할 수 있습니다(OnStop, OnPause 또는 OnContinue) 서비스 상태를 변경할 때 수행할 추가 처리를 정의할 수 있습니다. Windows 서비스는 *를 통해 설치및 제거됩니다. SetupAPI에 의한 INF 설치 스크립트; 설치된 서비스는 설치 직후에 시작할 수 있으며, 실행 중인 서비스는 제거하기 전에 중지할 수 있습니다. [19] [20] [21] MyNewService 클래스에서 Timer.Elapsed 이벤트를 처리 하는 OnTimer 메서드를 추가: 설정 프로젝트가 솔루션에 추가 됩니다. 다음으로 Windows 서비스 프로젝트인 MyNewService.exe의 출력을 설정에 추가합니다. 사용자 지정 이벤트 로그를 정의합니다. C#의 경우 기존 MyNewService() 생성자 편집; Visual Basic의 경우 New() 생성자 추가: 서비스 설치가 성공하면 서비스가 서비스 응용 프로그램에 표시됩니다. 이름은 „SvcName“으로 설정되어 있고 설명 및 상태는 비어 있으며 시작 유형은 „수동“으로 설정됩니다. 파일 백업 도구, 디스크 암호화 프로그램, 온라인 백업 유틸리티 등과 같은 제3자, Windows 이외의 프로그램에서 서비스를 설치할 수도 있습니다. 일부 유형의 프로젝트와 달리 서비스 응용 프로그램에 대한 설치 구성 요소를 만들어야 합니다. 설치 구성 요소는 서버에 서비스를 설치하고 등록하고 Windows 서비스 제어 관리자를 사용하여 서비스에 대한 항목을 만듭니다.

자세한 내용은 서비스 응용 프로그램에 설치 관리자를 추가하는 방법을 참조하세요. Windows SetServiceStatus 함수를 호출하는 코드를 추가하여 SERVICE_START_PENDING 및 SERVICE_STOP_PENDING 상태 설정을 구현할 수 있습니다. 서비스에 대해 설정한 표시 이름으로 사전순으로 표시되는 서비스가 표시됩니다. Windows 서비스에는 사용자에 대한 인터페이스가 없으므로 일반 응용 프로그램처럼 디버깅할 수는 없지만 프로세스로 디버깅됩니다. .NET에는 Ctrl + Alt + P 바로 가기를 쉽게 눌러 실행 상태에있는 동안 프로세스 디버깅을 가능하게하는 아주 좋은 도구가 있습니다. 설계 탭에서 바로 가기 메뉴에서 속성을 선택합니다. 속성 창에서 서비스 이름 값을 MyNewService로 변경합니다. Windows 서비스를 편집할 때는 매우 주의해야 합니다. 나열된 대부분의 작업은 일상적인 작업에 매우 중요하며, 일부는 제대로 작동하기 위해 다른 서비스에 의존하기도 합니다.