2011-09-05 4 views
1

동일한 설치 디렉토리에서 nServiceBus에 대한 여러 구성을 지원하는 방법을 찾으려하지만 (별도의 프로세스로 실행 중임). 사람들은 어떻게 이것을 순간에합니까?nServiceBus에 대한 여러 구성 파일 - 동일한 디렉토리

  • 프로그래밍
NServiceBus.Configure 
    .With() 
    ... 
    .MsmqTransport() 
    .Configurer.ConfigureComponent<MsmqTransport> 
    (NServiceBus.ObjectBuilder.ComponentCallModelEnum.None) 
     .ConfigureProperty(x => x.InputQueue, "DynamicInputQueue1") 
     .ConfigureProperty(x => x.ErrorQueue, "DynamicErrorQueue1"); 
  • 를 사용하여 매개 변수를 변경할 수 있습니다 당신이 사용하는 서비스의 여러 "인스턴스"를 설치할 수 있습니다 :

    나는 알고

,

NServiceBus.Host.exe// serviceName에 설치 : ABC

하지만 난 어떤 구성 경로를 우리가 가지고 두 그래서 인스턴스 이름의 영향을 결합하고 싶습니다 : XYZ/인스턴스를. 그래서 나는 이것으로 추측된다 - 어떻게 인스턴스 이름을 가져올 수 있을까? 또는 여러 개의 개별 설치 디렉토리와 인스턴스마다 app.configs를 사용하지 않고도이 작업을 수행 할 수있는 대체 경로가 있습니까?

감사

답변

1

나는, 당신이, 서로 다른 디렉토리가 관리 사람들을 위해 간단하게 할 수있는 유지 보수 관점에서 생각하지만 당신은 하나의 디렉토리를 원하는 경우, 당신은 아마 다음 방법 중 하나를 사용할 수 있습니다.

맞춤 프로필을 구현하는 것이 좋습니다. 프로필 이름은 명령 줄에서 제공되며 프로필을 기반으로 설정을 조정할 수 있습니다. OOTB NSB에는 환경에 따라 설정을 변경하는 3 가지 프로파일, Lite, Integration 및 Production이 있습니다. 자신 만의 프로필을 만들어 프로필을 사용하여 다른 설정을 제공 할 수 있습니다. IProfile을 구현 한 다음 명령 줄에 입력하면됩니다.

또 다른 옵션은 IConfigurationSource를 구현하고 결정한 모든 위치에서 데이터를 가져 오는 것입니다. 이것은 여러 파일, 데이터베이스 또는 다른 것일 수 있습니다.

마지막으로 구성을 다른 어셈블리에 넣고 NSB 컨테이너를 활용하여 위의 부트 스트랩 코드에서 적절한 구성을로드 할 수 있습니다. 여기에는 어셈블리 목록에 올바른 구성 어셈블리가 포함되어 있습니다. 이것은 아마도 IWantToRunAtStartup을 구현할 수 있지만, 서비스의 수명 기간 중 올바른 시점에 config를 조정하고 있는지 확인하십시오.

+0

대단히 감사합니다. Adam - 현재 전체 서비스 이름 (인스턴스 이름)을 가져올 수있는 일부 코드를 사용하고 있지만 프로파일이 더 나은 방법 일 수 있습니다. –

관련 문제