문제

내 질문은 본질적으로 다음과 동일하지만 대답은 저를 도와주지 않았습니다.

.NET Windows Service- 하나의 프로젝트의 여러 서비스

기본적으로 3 가지 서비스가 있습니다. "Service1", "Service"및 "Service3"이라고합니다.

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
                                {
                                    new Service1("Service1"),
                                    new Service2("Service2"),
                                    new Service3("Service3")
                                };

ServiceBase.Run(ServicesToRun);

또한 각 서비스에 대해 해당 ServiceInstaller.servicename = "Servicex"가있는 설치 프로그램 클래스가 있습니다.

installUtil을 사용하면 서비스 관리자에 3 개의 서비스가 모두 표시됩니다. 그러나 내가 그들을 시작할 때 (어느 것 또는 전부) 첫 번째 ( "Service1") 만 실행 중입니다.

나는 이것이 사소하다는 것을 알고 있으며 아마도 각각에 대해 다른 설치 프로그램 프로젝트를 가질 수 있지만 내 경우에는 하나만 사용하는 것이 의미 적으로 더 합리적입니다.

당신의 도움에 감사드립니다

감사합니다 Venu

도움이 되었습니까?

해결책

각 서비스에 프로젝트 설치 프로그램을 사용하는 3 개의 서비스 프로젝트 (아래)를 만들었습니다. 그런 다음 서비스 관리자에 서비스를 설치하는 설치 프로그램 프로젝트를 추가했습니다. 여기 내 워크 플로가 있습니다.


  1. Visual Studio 2008에서 솔루션에서 3 개의 서비스를 만듭니다. 각 서비스를 Service1, Service2 및, Service3로 명명하십시오. (속성 창에서 실제 서비스 이름을 해당 이름으로 변경해야합니다.)
  2. 이 솔루션에 설치 프로그램 프로젝트를 추가했습니다.
  3. 세 서비스 프로젝트에서 프로젝트 출력을 설치 프로그램 프로젝트에 추가했습니다.
  4. 서비스 관리자에 서비스를 설치하기 위해 설치 프로그램의 세 서비스 모두에 대한 사용자 정의 작업이 추가되었습니다.
  5. 제작 및 설치.

서비스 관리자에서 세 가지 서비스를 제공합니다 : Service1, Service2 및 Service3

즐기다!

http://code.google.com/p/multi-service-install/

편집하다:

저장소의 코드를 업데이트하여 하나의 실행 가능이지만 두 개의 서비스를 제공했습니다. 각 서비스는 자체 이름과 시작/중지 기능을 갖춘 서비스 관리자에게 설치됩니다. 이것이 당신이 원하는 것 같아요, 맞습니까? 여기에 내가 한 일은 다음과 같습니다.

  1. 서비스 프로젝트를 만들었습니다.
  2. 동일한 프로젝트에 두 번째 서비스를 추가했습니다 (고유 한 서비스 이름).
  3. 서비스 (Servicea 및 ServiceB)에 설치 프로그램이 추가되었습니다.
  4. ProjectInstaller.designer.vb 파일에서 me.installers.addrange 라인을 변경하여 두 서비스 설치자를 모두 표시했습니다. (ME.ServiceInstaller1, ME.ServiceInstaller2)
  5. 메인 서비스의 주요 진입 점 (내 경우 Servicea)에서 Servicestorun 변수를 실행하려는 모든 서비스 (Servicea 및 ServiceB)를 포함하는 서비스베이스 배열로 설정했습니다. 서비스 관리자가 여기서 인수의 수를 기반으로 속성을 설정하므로 동일한 EXE의 여러 인스턴스를 허용하거나 단일 인스턴스 만 허용 할 때 중요한 단계입니다.
  6. 설치 프로그램 프로젝트를 추가하고 서비스 출력을 사용하십시오.
  7. 서비스의 출력을 사용하여 사용자 정의 작업을 추가하십시오.

코드는 위와 같은 링크에서 여전히 다운로드 할 수 있습니다.

감사!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top