본문 바로가기
IT-개발,DB

[개발/.net] 닷넷 프레임워크 - 프로그래밍 방식으로 윈도우즈 서비스 작성

by SB리치퍼슨 2010. 8. 18.

닷넷 프레임워크 - 프로그래밍 방식으로 윈도우즈 서비스 작성
C#.NET 기준

Windows 서비스 프로젝트 템플릿을 사용하지 않고 상속 및 다른 인프라 요소를 직접 설정하여 독자적인 서비스를 작성할 수도 있습니다. 서비스를 프로그래밍 방식으로 만들 경우 템플릿을 통해 처리할 수 있는 몇 가지 단계를 직접 수행해야 합니다.

  • ServiceBase 클래스에서 상속하는 서비스 클래스를 설정해야 합니다.

  • 서비스 프로젝트에 Main 메서드를 만들어 서비스가 Run 메서드를 실행하고 호출하도록 정의해야 합니다.

  • OnStartOnStop 프로시저를 재정의하고 프로시저에서 실행할 모든 코드를 입력해야 합니다.

    Note참고

    Visual Studio Standard Edition에서는 Windows 서비스 템플릿과 관련 기능을 사용할 수 없습니다. 자세한 내용은 Visual Studio Edition을 참조하십시오.

프로그래밍 방식으로 서비스를 작성하려면

  1. 다음 단계에 따라 빈 프로젝트를 만들고 필요한 네임스페이스에 대한 참조를 만듭니다.

    1. 솔루션 탐색기에서 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.

    2. .NET Framework 탭에서 System.dll로 스크롤한 다음 선택을 클릭합니다.

    3. System.ServiceProcess.dll로 스크롤한 다음 선택을 클릭합니다.

    4. 확인을 클릭합니다.

  2. 클래스를 추가하고 ServiceBase에서 상속하도록 구성합니다.

     
    public class UserService1 : System.ServiceProcess.ServiceBase 
    {
    }

    public class UserService1 extends System.ServiceProcess.ServiceBase
    {
    }

  3. 다음 코드를 추가하여 서비스 클래스를 구성합니다.

     
    public UserService1()
    {
        this.ServiceName = "MyService2";
        this.CanStop = true;
        this.CanPauseAndContinue = true;
        this.AutoLog = true;
    }

    public UserService1()
    {
        this.set_ServiceName("MyService2");
        this.set_CanStop(true);
        this.set_CanPauseAndContinue(true);
        this.set_AutoLog(true);
    }

  4. 클래스에 대한 Main 메서드를 만들고 이를 사용하여 클래스에 포함될 서비스를 정의합니다. 클래스의 이름은 userService1입니다.

     
    public static void Main()
    {
        System.ServiceProcess.ServiceBase.Run(new UserService1());
    }

    public static void main()
    {
        System.ServiceProcess.ServiceBase.Run(new UserService1());
    }

  5. OnStart 메서드를 재정의한 다음 서비스를 시작할 때 발생시킬 모든 처리를 정의합니다.

     
    protected override void OnStart(string[] args)
    {
        // Insert code here to define processing.
    }

    J#
    protected void OnStart(System.String[] args)
    {
        // Insert code here to define processing.
    }

  6. 사용자 지정 처리로 정의할 다른 모든 메서드를 재정의한 다음 코드를 작성하여 각 경우에 서비스가 수행할 동작을 지정합니다.

  7. 서비스 응용 프로그램에 필요한 설치 관리자를 추가합니다. 자세한 내용은 방법: 서비스 응용 프로그램에 설치 관리자 추가를 참조하십시오.

  8. 빌드 메뉴에서 솔루션 빌드를 선택하여 프로젝트를 빌드합니다.

    Note참고

    F5 키를 눌러 프로젝트를 실행하지 마십시오. 이 방법으로는 서비스 프로젝트를 실행할 수 없습니다.

  9. 서비스를 설치할 사용자 지정 동작과 설치 프로젝트를 만듭니다. 예제를 보려면 연습: 구성 요소 디자이너에서 Windows 서비스 응용 프로그램 만들기를 참조하십시오.

  10. 서비스를 설치합니다. 자세한 내용은 방법: 서비스 설치 및 제거를 참조하십시오.

    출처: http://msdn.microsoft.com/ko-kr/library/76477d2t(v=VS.80).aspx

반응형

댓글