관리 메뉴

낚시하는 프로그래머 오틸라입니다.

윈도우 서비스 프로그램 만들기 본문

Dev/C#

윈도우 서비스 프로그램 만들기

오틸라 2008. 5. 29. 15:41

1. 프로젝트를 윈도우 서비스 로 생성한다.

빌드 한다 끝! -0-


2. 험.....-_-;;;  서비스에 등록하기

등록 : 커맨드창에서> installutil 만든서비스명.exe
제거 : 커맨드창에서> installutil 만든서비스명exe /u


3. 프로그래밍으로 서비스 등록 제거하기

Process.Start("InstallUtil.exe", argument); // argument는 만든서비스 경로



주의1. installutil.exe 파일은 닷넷 프레임워크에서 제공하며, 반드시 서비스를 만든 버전과 같아야 한다.
1.1에서 만들었다면 installutil도 1.1껄 써야 하고,
2.0 에서도 2.0껄 써야 한다.


주의2. 서비스가 아래와 같은 에러로 등록이 안될시.
---------------------------------------------------------------------------------------------
어셈블리 'd:\c#.net\winservice\service1.exe'을(를) 설치하고 있습니다.

영향을 받는 매개 변수:

   assemblypath = d:\c#.net\winservice\service1.exe

   logfile = d:\c#.net\winservice\service1.InstallLog

d:\c#.net\winservice\service1.exe 어셈블리에서 RunInstallerAttribute.Yes 특성을 포함하는 공용 설치 관리자를 찾을 수 없습니다.

어셈블리 'd:\c#.net\winservice\service1.exe'을(를) 커밋하고 있습니다.

영향을 받는 매개 변수:

   assemblypath = d:\c#.net\winservice\service1.exe

   logfile = d:\c#.net\winservice\service1.InstallLog

d:\c#.net\winservice\service1.exe 어셈블리에서 RunInstallerAttribute.Yes 특성을 포함하는 공용 설치 관리자를 찾을 수 없습니다.

설치 관리자가 없으므로 InstallState 파일을 제거합니다.
---------------------------------------------------------------------------------------------

메인 서비스 소스에 아래를 추가한다.

[RunInstallerAttribute(true)]
public class ServiceInstaller : Installer
{
        public ServiceInstaller()
       {
         ServiceProcessInstaller processInstaller = new ServiceProcessInstaller();
         processInstaller.Account = ServiceAccount.LocalSystem;            // 로컬 계정
         ServiceInstaller serviceInstaller = new Service Installer();
         serviceInstaller.StartType = ServiceStartMode.Manual;                // 서비스타입 (수동, 자동)
         serviceInstaller.ServiceName = "샘플서비스";                             // 서비스 이름
        Installer.Add(serviceInstaller);
        Installer.Add(processInstaller);
        }
}

공유하기 링크
0 Comments
댓글쓰기 폼