상세 컨텐츠

본문 제목

Windows Service 만들기

C#

by 탑~! 2012. 2. 28. 13:34

본문

[서비스 만들기]

☞ 파일 메뉴에서 새 프로젝트를 클릭한다.

☞ 새 프로젝트 대화 상자가 열린다.

☞ 프로젝트 형식에서 Visual C#을 확장하고 Windows를 누른 다음 템플릿에서 Windows 서비스를

누른다.

☞ 디자이너를 클릭하여 Service1을 선택합니다. 그런 다음 속성 창에서 Service1에 대한 ServiceName 및 (이름) 속성을 MyNewService로 설정합니다.

☞ AutoLog 속성을 true로 설정합니다.

[서비스에 기능 추가]

Windows 서비스에 사용자 지정 이벤트 로그를 추가합니다.

솔루션 탐색기에서 Service1.cs 을 마우스 오른쪽 단추로 클릭하고 디자이너 보기를 선택합니다.

도구 상자의 구성 요소 탭에서 EventLog 구성 요소를 디자이너로 끌어 옵니다.

솔루션 탐색기에서 Service1.cs 을 마우스 오른쪽 단추로 클릭하고 코드 보기를 선택합니다.

사용자 지정 이벤트 로그를 정의하는 생성자를 편집합니다.


프로젝트를 만들 때 자동으로 재정의된 OnStart 메서드를 코드 편집기에서 찾은 다음 서비스가 실행될 때 수행해야 할 작업을 결정하는 코드를 작성합니다.

protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
}

[참고 - OnStart]

서비스 어플리케이션의 시작 method입니다.

지속적으로 수행되는 어플리케이션의 경우에는 별도의 thread를 생성하는 편이 좋다.
즉, method는 가능한 빨리 완료되는 것이 좋다.

프로젝트를 만들 때 자동으로 재정의된 OnStop 프로시저를 선택합니다. 서비스가 중지되었을 때 수행해야 할 작업을 결정하는 코드를 작성합니다.

protected override void OnStop()
{
eventLog1.WriteEntry("In onStop.");
}

[서비스를 위한 설치 관리자를 만들기]

솔루션 탐색기에서 Service1.vb, Service1.cs 또는 Service1.jsl을 마우스 오른쪽 단추로

클릭하고 디자이너 보기를 선택합니다.

디자이너에 포커스가 있는 상태에서 설치 관리자 추가를 클릭합니다. (마우스 오른클릭)

기본적으로 설치 관리자가 두 개 들어 있는 구성 요소 클래스가 프로젝트에 추가됩니다.

구성 요소의 이름이 ProjectInstaller로 지정되며 구성 요소에는 서비스를 위한 설치 관리자와 서비스 관련 프로세스를 위한 설치 관리자가 들어 있습니다.

ProjectInstaller의 디자인 뷰에서 ServiceInstaller1 또는 serviceInstaller1을 클릭합니다.

속성 창에서 ServiceName 속성을 MyNewService로 설정합니다.

StartType 속성을 Automatic으로 설정합니다.

디자이너에서 ServiceProcessInstaller1(Visual Basic 프로젝트의 경우) 또는 iceProcessInstaller1(Visual C# 또는 Visual J# 프로젝트의 경우)을 클릭합니다.

Account 속성을 LocalService로 설정합니다.

이렇게 하면 서비스가 로컬 서비스 계정으로 설치되고 실행됩니다.

[서비스에 대한 설치 프로젝트를 만들기]

솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하여 선택하고 추가를 가리킨 다음

새 프로젝트를 클릭합니다.

프로젝트 형식 창에서 설치 및 배포 프로젝트 폴더를 선택합니다.

템플릿 창에서 설치 프로젝트를 선택합니다. 프로젝트 이름을 MyServiceSetup으로 지정합니다. 확인을 클릭합니다.

설치 프로젝트가 솔루션에 추가됩니다.

솔루션 탐색기에서 MyServiceSetup을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 프로젝트 출력을 클릭합니다.

프로젝트 출력 그룹 추가 대화 상자가 나타납니다.

프로젝트 상자에서 MyNewService가 선택되어 있습니다.

목록에서 기본 출력을 선택한 다음 확인을 클릭합니다.

MyNewService의 기본 출력으로 사용할 프로젝트 항목이 설치 프로젝트에 추가됩니다.

솔루션 탐색기에서 설치 프로젝트를 마우스 오른쪽 단추로 클릭하고 보기를 가리킨 다음 사용자 지정 작업을 클릭합니다.

사용자 지정 작업 편집기가 나타납니다.

사용자 지정 작업 편집기에서 사용자 지정 작업 노드를 마우스 오른쪽 단추로 클릭한 다음 사용자 지정 작업 추가를 클릭합니다.

프로젝트에서 항목 선택 대화 상자가 나타납니다.

목록에서 응용 프로그램 폴더를 두 번 클릭하여 열고 MyNewService의 기본 출력(활성)을

선택한 다음 확인을 클릭합니다.

기본 출력이 사용자 지정 작업의 네 가지 노드인 설치, 커밋, 롤백 및 설치 제거에 모두 추가됩니다.

솔루션 탐색기에서 MyServiceSetup 프로젝트를 마우스 오른쪽 단추로 클릭한 다음

빌드를 클릭합니다.

빌드후 MyServiceSetup 파일이 생성됩니다.

MyServiceSetup 파일을 실행시킨다.

윈도우즈 서비스 프로젝트로 생성된 결과물은 실제 윈도우 서비스에 등록하는 역할을 합니다.

등록되었는지에 대한 확인은 [관리도구]-[서비스]를 찾아가시면 됩니다.

[참고]

http://msdn.microsoft.com/ko-kr/library/zt39148a.aspx

http://blog.naver.com/jcross1116?Redirect=Log&logNo=64379645

출처 : http://blog.naver.com/whwlfnsl/70068069082

'C#' 카테고리의 다른 글

문자열 수식 계산기  (0) 2012.03.02
Sample Entity Framework Provider For Oracle  (0) 2012.02.29
항상 떠 있는 폼  (0) 2012.02.28
test  (0) 2012.02.28
신뢰사이트 등록하기  (0) 2012.02.27

관련글 더보기