我正在尝试从同一安装目录中找到支持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?
由于
答案 0 :(得分:1)
我认为从维护的角度来看,您可能需要不同的目录来使管理员更容易,但如果您想要一个目录,则可以使用以下方法之一。
您可能需要考虑实施自定义配置文件。配置文件名称在命令行中提供,允许您根据配置文件调整设置。 OOTB NSB有3个配置文件,Lite,Integration和Production,可根据环境更改设置。您可以创建自己的,并使用配置文件提供不同的设置。只需实现IProfile,然后在命令行上提供它。
另一种选择可能是实现IConfigurationSource并从您决定的任何地方提取数据。这可以是多个文件,数据库或其他内容。
最后,您可以将配置放入不同的程序集中,并利用NSB容器在上面的引导程序代码中使用.With加载相应的配置(此处的程序集列表包括正确的配置程序集)。这可能是通过实现IWantToRunAtStartup来完成的,但请检查以确保在服务生命周期的正确位置调整配置。