2012-08-02 2 views
8

TopShelf를 사용하여 Windows 서비스를 만들려고합니다. 하나의 서비스 인스턴스로 모든 것이 잘 작동합니다. 그러나 전체 서비스 폴더를 다른 위치에 복사 한 다음 "시작"위치에 설치를 실행하면됩니다.TopShelf 동일한 컴퓨터에 동일한 서비스를 여러 개 설치하십시오.

이름 지정 충돌이 없도록 구성 파일의 값을 기반으로 servicename, description, displayaname을 지정합니다.

+0

가능한 경우 로그 출력을 포함 시키십시오. 가능한 경우 로그 출력을 포함하십시오. https://groups.google.com/forum/#!forum/topshelf-discuss SO를 통해 파악하기가 어려울 것입니다. 그러나 동일한 서비스 중 두 가지를 실행할 수 있도록 "인스턴스"이름을 설정할 수 있습니다. – Travis

+0

서비스 이름과 표시 이름이 고유합니까? 고유 한 servicenames와 두 개의 서비스를 설치하려고했지만 동일한 displayname을 사용하고 너무 효과가 없었어요. – Bomberlt

답변

22

차별화해야 할 서비스는 instancename입니다. documentation 가입일

: 는 [동사]

service.exe [-option : 값 [스위치 ']

설치는 예 -instance 서비스

를 설치 서비스를 여러 번 등록하는 경우 이름

(210)

그래서 당신은 사용할 수 있습니다

service.exe install -instance:FirstInstanceOfMyService 

service.exe install -instance:SecondInstanceOfMyService 
5

당신은 설정 파일에 서비스 인스턴스 이름을 설정하는 것입니다 원하는 경우이 같은 프로그래밍 방식으로 인스턴스 이름을 설정할 수 있습니다

var instanceName = ConfigurationManager.AppSettings["Instance"]; 
HostFactory.Run(hostConfigurator => 
{  
    ... 
    hostConfigurator.SetDisplayName("My service"); 
    hostConfigurator.SetDescription("My service that does something"); 
    hostConfigurator.SetServiceName("MyService"); 
    hostConfigurator.SetInstanceName(instanceName); 
} 

그래서,시 가능한 경우에만 설치하십시오.

MyService.exe install 
관련 문제