2012년 12월 27일 목요일

C# 서비스등록하기



먼저 이 게시물의 내용은 VS2003 한글판에서 작업된 것임을 알립니다.
VS 버젼에 따라서 약간씩 메뉴 구성이 다릅니다.  인터페이스가 조금씩 다를뿐 방법은 동일합니다.
이 게시물의 게시 목적은 간략한 서비스 생성 및 등록 방법에 대한 정보 공유입니다.

1. 프로젝트 생성
- 아래와 같이 C# 프로젝트 내의 WINDOWS 서비스 프로젝트를 선택하여 프로젝트를 생성 시킵니다.
( 다른 언어도 WINDOWS 서비스 프로젝트가 제공된다면 동일하게 작업 가능합니다.)


2. 서비스 기본 정보 설정
- 서비스의 이름을 정의합니다.  아래와 같이 프로젝트 생성후에 기본적으로 생성되는 WindowsService.cs 의 디자인 모드에서
오른쪽 마우스 버튼을 클릭하여 [속성]을  누르면 기본 정보를 설정하는 메뉴가 나타납니다.
- 이 메뉴에서 서비스 이름을 저장하십시오.


3. 서비스 설치 관리자 추가
- 속성 창 하단에 있는 설치 관리자를 클릭하여 주십시오.
- 설치 관리자는 윈도우 서비스 목록에 현재 작업 중인 서비스를 등록하는 역할을 담당합니다.


- 설치관리자 추가 후 솔루션 탐색기의 모습입니다.
참조에 못보던 모듈 2개가 추가되어 있습니다.  상세 정보는 MSDN 을 참고 하십시오.


4. 세부 작업 정의
- 기본적인 서비스로서의 등록에 필요한 작업은 여기까지입니다.
- 지금부터 남은것은 코딩입니다.  이 서비스가 하는 일을 정의 해야겠죠?  서비스 관리자에서 서비스를 시작할때 호출되는 메소드가 OnStart 이며 종료시에 호출되는 메소드가 OnStop 입니다. 이 각각의 메소드들 내부에 원하는 작업에 대한 코딩을 하시면 됩니다.


여기까지 완료되었다면 빌드를 하십시오.

5. INSTALLUTIL 로 서비스 등록하기
- 닷넷 프레임웍을 설치하면 각각의 버젼마다 INSTALLUTIL 이라는 파일이 설치 됩니다.
- 이 INSTALLUTIL 은 윈도우즈 서비스 프로젝트로 생성된 결과물을 실제 윈도우 서비스에 등록하는 역할을 합니다.


결과물의 파일명이 SVC_TEST.EXE 라면 커멘드 창을 여신 후에 결과물이 있는 폴더로 이동 하신 후 아래와 같은 명령어를 쳐 주시면 등록이 완료 됩니다.

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\INSTALLUTIL  SVC_TEST.EXE /i

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



이상으로 C# 을 이용한 윈도우 서비스 생성에 대한 설명을 마칩니다.

주의사항~

ServiceProcessInstaller 의 Account 값은 별다른 목적이 없으면 LocalSystem 으로 설정 하여야 합니다.

등록시 계정 관련 오류가 나는 경우 대부분 계정 정보가 잘못 등록된 케이스..





http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1713&page=12


댓글 없음: