2011-01-13 2 views
1

많은 WCF 서비스를 호스트하기 위해 많은 Windows 서비스를 만들어야하므로 하나만 중지 (예 : 업데이트)하고 다른 서비스는 계속 실행해야합니다.C#은 다른 매개 변수를 사용하여 동일한 Windows 서비스를 등록합니다.

나는 모든 WCF 서비스에 대해 Windows 서비스를 만들고 싶지 않기 때문에 Windows 서비스로 등록 할 수있는 C# 응용 프로그램을 만들려고하고 있지만 다른 매개 변수 (물론 서비스 이름) . 나는 레지스트리를 직접 편집하는 것보다이 다른 작업을 수행 할 수있는 방법을 찾을 수 없습니다

WcfService1 -> MyService.exe /run WcfService1.dll 
WcfService2 -> MyService.exe /run WcfService2.dll 

:

MyService.exe /install WcfService1.dll 
MyService.exe /install WcfService2.dll 

이 다음과 같은 두 개의 서로 다른 Windows 서비스를 만듭니다

예를 들어

하면이 방법을 호출 .

+0

문제가 무엇인지 분명하지 않기 때문에 질문을 따르지 못합니다. 귀하의 질문을 읽으면서 이미 해결책이 있습니다! –

+0

명확하지 않은 것에 대해 미안 : 내 문제는 C#을 사용하여 매개 변수가있는 Windows 서비스를 추가하는 방법을 찾을 수 없다는 것입니다. – Keeper

답변

3

내가 할 수있는 더 좋은 방법을 발견했습니다

sc.exe create WcfService1 binPath= "MyService.exe /run WcfService1.dll"

그래서 난 그냥 박쥐 /를 작성해야 SC.EXE이 명령을 실행 cmd를.

0

본질적으로 서비스는 특정 것을 처리하기위한 이동 프로세스로 설계되어 있으며 여러 인스턴스를 가지는 것이 일반적으로 좋은 아이디어는 아닙니다. 그러나, 당신이 원하는 것을 할 수 있습니다. 예를 들어 한 번에 여러 SQL Server 인스턴스를 실행할 수 있습니다.

this을 읽으십시오. 기본적으로 서비스 설치 프로그램에는 명령 줄이나 다른 구성 가능한 인수를 지정할 수 있습니다.이 인수는 Windows에서 서비스로 등록해야하는 이름을 알려줍니다. 이것은 일반적으로 서비스 설치 프로그램 및 서비스 실행 파일의 속성을 기반으로 자동으로 이루어 지지만이 모든 것은 동적으로 설정할 수도 있습니다. 이름을 변경하면 서비스 등록이 변경됩니다. 서비스 이름은 (AFAIK) 서비스로 실행되는 실행 파일로 검사 할 수 있어야하며, 서비스가 실행되는 WCF 서비스를 알 수 있습니다.

+1

요점은 모르겠지만 동일한 정확한 서비스를 실행하려고하지는 않습니다. 다른 매개 변수로 실행 가능합니다 (예 : windows가 svchost.exe로 수행 중일 때). 실질적으로 WCF 호스팅 서버를 구현 한 것입니다. – Keeper