NServiceBus:无法设置项NServiceBus.Transport.ConnectionString的值

NServiceBus:无法设置项NServiceBus.Transport.ConnectionString的值,nservicebus,structuremap,objectfactory,Nservicebus,Structuremap,Objectfactory,我正在开发的应用程序在某些操作中使用NServiceBus作为消息传递总线。在我的AppStartup中,我试图将NServiceBus配置为使用自定义单播配置,该配置已成功运行。但是,当我使用以下代码调用我的配置时: ObjectFactory.Configure(configure => configure.For<IBus>().Use( Configure .With()

我正在开发的应用程序在某些操作中使用NServiceBus作为消息传递总线。在我的AppStartup中,我试图将NServiceBus配置为使用自定义单播配置,该配置已成功运行。但是,当我使用以下代码调用我的配置时:

    ObjectFactory.Configure(configure =>
        configure.For<IBus>().Use(
            Configure
                .With()
                .StructureMapBuilder(ObjectFactory.Container)
                .UseTransport<Msmq>()
                .UnicastBus()
                .SendOnly()
            )
        );
需要明确的是:这是在客户端,而不是在NServiceBus的实际总线端。进行此设置是为了能够将消息发送到NServiceBus队列,该队列已在其他应用程序中正常工作。我还确认此应用程序的配置与其他应用程序相同

在这方面我能得到的任何帮助都是非常好的:)

解决了


仅供参考:总线对象正在IOC配置中实例化,但随后IOC试图重复该过程。这导致IBus对象的多个实例被实例化,这使IOC感到困惑,因为根据StructureMap,IOC对象只应实例化一次。在运行配置函数之前,我通过检查Ibs对象是否已由IOC控制器实例化来解决这个问题。

我也遇到了同样的问题。这对我有帮助

Configure.With()
   .AutofacBuilder(container)
   .UseTransport<Msmq>()
   .MsmqSubscriptionStorage();
Configure.With()
.AutofacBuilder(容器)
.UseTransport()
.MsmqSubscriptionStorage();

您的应用程序能够更改配置文件吗?是的,并且应用程序从数据库加载其大部分配置,以便于在生产中更改。我们已经在NSB的IOC配置中使用了该配置。问题出在IOC容器中,而不是NSB配置中,在NSB配置中,IOC尝试在NSB上运行配置两次,因此引发了一个错误。
Configure.With()
   .AutofacBuilder(container)
   .UseTransport<Msmq>()
   .MsmqSubscriptionStorage();