방법: 프로그래밍 방식으로 서비스 작성
Windows 서비스 프로젝트 템플릿을 사용하지 않고 상속 및 다른 인프라 요소를 직접 설정하여 독자적인 서비스를 작성할 수도 있습니다. 서비스를 프로그래밍 방식으로 만들 경우 템플릿을 통해 처리할 수 있는 몇 가지 단계를 직접 수행해야 합니다.
ServiceBase 클래스에서 상속하는 서비스 클래스를 설정해야 합니다.
서비스 프로젝트에 Main 메서드를 만들어 서비스가 Run 메서드를 실행하고 호출하도록 정의해야 합니다.
OnStart 및 OnStop 프로시저를 재정의하고 프로시저에서 실행할 모든 코드를 입력해야 합니다.
참고
Visual Studio Standard Edition에서는 Windows 서비스 템플릿과 관련 기능을 사용할 수 없습니다.
프로그래밍 방식으로 서비스를 작성하려면
다음 단계에 따라 빈 프로젝트를 만들고 필요한 네임스페이스에 대한 참조를 만듭니다.
솔루션 탐색기에서 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.
.NET Framework 탭에서 System.dll로 스크롤한 다음 선택을 클릭합니다.
System.ServiceProcess.dll로 스크롤한 다음 선택을 클릭합니다.
확인을 클릭합니다.
클래스를 추가하고 ServiceBase에서 상속하도록 구성합니다.
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
public class UserService1 : System.ServiceProcess.ServiceBase { }
다음 코드를 추가하여 서비스 클래스를 구성합니다.
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
public UserService1() { this.ServiceName = "MyService2"; this.CanStop = true; this.CanPauseAndContinue = true; this.AutoLog = true; }
클래스에 대한 Main 메서드를 만들고 이를 사용하여 클래스에 포함될 서비스를 정의합니다. 클래스의 이름은 userService1입니다.
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
public static void Main() { System.ServiceProcess.ServiceBase.Run(new UserService1()); }
OnStart 메서드를 재정의한 다음 서비스를 시작할 때 발생시킬 모든 처리를 정의합니다.
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
protected override void OnStart(string[] args) { // Insert code here to define processing. }
사용자 지정 처리로 정의할 다른 모든 메서드를 재정의한 다음 코드를 작성하여 각 경우에 서비스가 수행할 동작을 지정합니다.
서비스 응용 프로그램에 필요한 설치 관리자를 추가합니다. 자세한 내용은 방법: 서비스 응용 프로그램에 설치 관리자 추가를 참조하십시오.
빌드 메뉴에서 솔루션 빌드를 선택하여 프로젝트를 빌드합니다.
참고
F5 키를 눌러 프로젝트를 실행하지 마십시오. 이 방법으로는 서비스 프로젝트를 실행할 수 없습니다.
서비스를 설치할 사용자 지정 동작과 설치 프로젝트를 만듭니다. 예제를 보려면 연습: 구성 요소 디자이너에서 Windows 서비스 응용 프로그램 만들기를 참조하십시오.
서비스를 설치합니다. 자세한 내용은 방법: 서비스 설치 및 제거를 참조하십시오.
참고 항목
작업
연습: 구성 요소 디자이너에서 Windows 서비스 응용 프로그램 만들기