我正在开发的应用程序使用 NServiceBus 作为消息传递总线来执行某些操作。在我的 AppStartup 中,我正在尝试将 NServiceBus 配置为使用自定义单播配置,该配置运行成功。但是,当我使用此代码调用我的配置时:
ObjectFactory.Configure(configure =>
configure.For<IBus>().Use(
Configure
.With()
.StructureMapBuilder(ObjectFactory.Container)
.UseTransport<Msmq>()
.UnicastBus()
.SendOnly()
)
);
我得到这个例外:
无法设置键的值:NServiceBus.Transport.ConnectionString。设置已被锁定以进行修改。请在配置管道中更早地移动任何配置代码
这是异常的堆栈跟踪(省略了机密部分):
at NServiceBus.Settings.SettingsHolder.EnsureWriteEnabled(String key) in c:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Settings\SettingsHolder.cs:line 174
at NServiceBus.Settings.SettingsHolder.Set(String key, Object value) in c:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Settings\SettingsHolder.cs:line 57
at NServiceBus.Transports.ConfigureTransport`1.Configure(Configure config) in c:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Transports\ConfigureTransport.cs:line 21
at NServiceBus.TransportReceiverConfig.UseTransport(Configure config, Type transportDefinitionType, String connectionStringName) in c:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Unicast\Transport\Config\TransportReceiverConfig.cs:line 55
at NServiceBus.TransportReceiverConfig.UseTransport[T](Configure config, String connectionStringName) in c:\BuildAgent\work\31f8c64a6e8a2d7c\src\NServiceBus.Core\Unicast\Transport\Config\TransportReceiverConfig.cs:line 22
at ...
at StructureMap.Container.Configure(Action`1 configure) in c:\BuildAgent\work\767273992e840853\src\StructureMap\Container.cs:line 325
at StructureMap.ObjectFactory.Configure(Action`1 configure) in c:\BuildAgent\work\767273992e840853\src\StructureMap\ObjectFactory.cs:line 386
需要明确的是:这是在客户端,而不是在 NServiceBus 的实际总线端。进行此设置是为了能够将消息发送到 NServiceBus 队列,该队列已经与另一个应用程序正常工作。我还确认此应用程序的配置与其他应用程序相同。
我能得到的任何帮助都会很棒:)