【问题标题】:Multiple config files for nServiceBus - same directorynServiceBus 的多个配置文件 - 同一目录
【发布时间】:2011-09-05 15:18:33
【问题描述】:

我正在尝试找到一种方法来支持来自同一安装目录的 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?

谢谢

【问题讨论】:

    标签: configuration windows-services nservicebus


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了,谢谢亚当 - 我正在使用一些代码来获取完整的服务名称(以及实例名称),但看起来配置文件可能是一个更好的选择.
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2017-08-14
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多