我们有一个ASP.NET MVC应用程序,它当前将命令发送到NServiceBus(v3)服务。
该服务发布我们需要在Web应用程序中订阅的事件,以便我们可以向用户显示实时通知。
总线目前在Web应用程序中初始化如下:
private static IBus ConfigureBus()
{
return NServiceBus.Configure.With()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(true)
.UnicastBus()
.LoadMessageHandlers()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());
}
在web.config中使用以下配置:
<!-- NServiceBus -->
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<UnicastBusConfig ForwardReceivedMessagesTo="audit">
<MessageEndpointMappings>
<add Assembly="Foo.DocumentService.Messages" Endpoint="Foo.DocumentService.Host" />
</MessageEndpointMappings>
</UnicastBusConfig>
但是,我没有调用我在Web应用程序中创建的事件处理程序,也没有为Web应用程序创建任何队列,也没有看到任何发送给主机的订阅消息。
我错过了什么吗?
答案 0 :(得分:0)
启用日志记录后,我可以看到NServiceBus实际上没有初始化(这就是没有创建队列的原因)。
问题原来是我如何配置Ninject因为总线被懒惰地初始化了。快速更改我的绑定,一切正常。