NServiceBus加载所有程序集而不考虑设置

NServiceBus加载所有程序集而不考虑设置,nservicebus,Nservicebus,我正在尝试运行一个NServiceBus解决方案,该解决方案在一个目录中包含多个端点配置。我正在执行host.exe,其中包括/endpointConfigurationType:“class,assembly” 主机正确地将自己隔离为仅使用一个端点配置,但随后它似乎仍在扫描目录,加载并利用其他服务使用的其他DLL中找到的任何NSB接口。例如,其他端点DLL中的IWantToRunAtStartup实现正在执行,尽管我只希望NSB关心/endpointConfigurationType中的接口

我正在尝试运行一个NServiceBus解决方案,该解决方案在一个目录中包含多个端点配置。我正在执行host.exe,其中包括/endpointConfigurationType:“class,assembly”

主机正确地将自己隔离为仅使用一个端点配置,但随后它似乎仍在扫描目录,加载并利用其他服务使用的其他DLL中找到的任何NSB接口。例如,其他端点DLL中的IWantToRunAtStartup实现正在执行,尽管我只希望NSB关心/endpointConfigurationType中的接口

要将NSB解决方案部署到平面文件夹结构中,使NSB只关注其被告知要执行的端点,需要执行哪些步骤?

请参阅本页的“文件扫描”部分:


以下各项应起作用:

Configure.With(Assembly.GetExecutingAssembly())
                 .NinjectBuilder(kernel)
                 .FileShareDataBus(BasePath)
                 .UnicastBus()
                 .MsmqSubscriptionStorage()
                 .PurgeOnStartup(false)
                 .XmlSerializer()
                 .MsmqTransport();

关于安装,只需确保为每个/endpointConfigurationType运行/安装,请参见

谢谢Udi。我周一在办公室的时候会试试这个。这个页面我已经读了一百万遍了,但我想在你指出我之前,这些信息的含义并不明显。在使用Configure.With(Assembly.getExecutionGassembly())时,我在NServiceBus.Hosting.GenericHost.Start()中遇到了一个NullRef异常。思想?我只需要包括带有NSB接口的程序集,我想要扫描,对吗?在这种情况下,我只希望在NServiceBus.Hosting.Windows.WindowsHost.Start()上的NServiceBus.Hosting.Windows.WindowsHost.Start()上的NServiceBus.Hosting.Windows.Program.c_u在Topshelf.Internal.ControllerDeleteGates
1.StartActionObject(Object obj)上显示Class6.b_u3(WindowsHost服务)在Topshelf.Internal.IsolatedServiceControllerRapper
1.c_u显示类2.b_u1(服务服务)在Topshelf.Internal.ServiceController
1.b_u1(服务控制器
1 sc)在Magnum.StateMachine.LambdaAction`1.执行(T实例、事件、对象参数)…下面是配置代码:Configure.With(Assembly.GetExecutionGassembly()).NinjectBuilder(内核).UnicastBus().MessageFailureManager().MsmqSubscriptionStorage().PurgeOnStartup(false).XmlSerializer().FileShareDataBus(总线路径).MsmqTransport().ForInstallationOn().Install();@MartinBliss您需要包括所有包含消息处理程序的程序集以及NServiceBus程序集。有关我在这种方法中遇到的问题,请参阅Udi答案下的注释部分。@MartinBliss,您是否注意到我稍微更改了fluent API调用的顺序?我得到了一个TopShelf异常。根据Udi,您必须传入NSB程序集(而不仅仅是执行程序集)事实上,这并不完全正确,我们已经更改了该代码,以便始终包含NServiceBus程序集,请看,更改实际上是由我完成的,因此我知道这一点。此更改作为v3.0.4的一部分发布。此外,您可能会遇到v4中修复的问题?