Web应用程序未订阅NServiceBus事件

时间:2013-09-10 06:57:10

标签: asp.net nservicebus nservicebus3

我们有一个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应用程序创建任何队列,也没有看到任何发送给主机的订阅消息。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

启用日志记录后,我可以看到NServiceBus实际上没有初始化(这就是没有创建队列的原因)。

问题原来是我如何配置Ninject因为总线被懒惰地初始化了。快速更改我的绑定,一切正常。