CreateBus()做什么[NServicebus]?

CreateBus()做什么[NServicebus]?,nservicebus,Nservicebus,我将此作为NServiceBus的初始化代码: Configure.Serialization.Json(); Configure.Transactions.Disable(); // No idea why this is set... Configure.Features.Disable<AutoSubscribe>(); // This endpoint only sends commands, it never receives

我将此作为NServiceBus的初始化代码:

        Configure.Serialization.Json();
        Configure.Transactions.Disable(); // No idea why this is set...
        Configure.Features.Disable<AutoSubscribe>(); // This endpoint only sends commands, it never receives events, so it does not need to subscribe to anything.

        Configure
            .With(AllAssemblies.Except("evointernal.dll"))
            .StructureMapBuilder(ObjectFactory.Container)
            .ForMvc()
            .UseTransport<Msmq>()
            .PurgeOnStartup(true)
            .UnicastBus()
            .RunHandlersUnderIncomingPrincipal(false)
            .FileShareDataBus("c:\\NServiceBus_DataBus")
            .CreateBus();

        Configure
            .Instance
            .Configurer
            .ConfigureComponent<OutgoingMessageMutator>(DependencyLifecycle.InstancePerCall);
Configure.Serialization.Json();
Configure.Transactions.Disable();//不知道为什么会这样。。。

Configure.Features.Disable对此没有多大帮助。

Configure是一个流畅的API,用于定义如何配置总线。CreateBus()实际上是启动它的工具。看看,它也可能解释为什么需要时间。

你的问题基本上是“NServiceBus做什么?”一点也不。我的问题是“为什么NSB的init代码如此之慢,是否有一种方法可以在需要时手动运行它”。好的。它的速度很慢,因为它正在初始化一个复杂的基础设施:企业服务总线。它所做的事情并不琐碎,因此需要一些时间来启动。您可以在开发时注释掉它,或者在开发模式下运行时使用配置来决定是否初始化它。然而,如果不知道你的系统使用NSB做什么,就不可能说这是不是一个好主意。是的,我知道NSB做什么。我不知道CreateBus()是做什么的,或者为什么它是必要的——它是否检查并创建队列(如果必要)?因为我希望在开发时跳过该步骤并手动运行它,例如仅在需要时通过PowerShell cmdlet。