nServiceBus的多个配置文件 - 相同的目录

时间:2011-09-05 15:18:34

标签: configuration windows-services 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 / install / serviceName:xyz / instance:abc

但我想将两者结合起来,因此实例名称会影响我们采用的配置路径。所以我想它归结为此 - 我如何获取实例名称?或者是否有我可以采取的替代路线,而不是每个实例使用多个单独的安装目录和app.configs?

由于

1 个答案:

答案 0 :(得分:1)

我认为从维护的角度来看,您可能需要不同的目录来使管理员更容易,但如果您想要一个目录,则可以使用以下方法之一。

您可能需要考虑实施自定义配置文件。配置文件名称在命令行中提供,允许您根据配置文件调整设置。 OOTB NSB有3个配置文件,Lite,Integration和Production,可根据环境更改设置。您可以创建自己的,并使用配置文件提供不同的设置。只需实现IProfile,然后在命令行上提供它。

另一种选择可能是实现IConfigurationSource并从您决定的任何地方提取数据。这可以是多个文件,数据库或其他内容。

最后,您可以将配置放入不同的程序集中,并利用NSB容器在上面的引导程序代码中使用.With加载相应的配置(此处的程序集列表包括正确的配置程序集)。这可能是通过实现IWantToRunAtStartup来完成的,但请检查以确保在服务生命周期的正确位置调整配置。