0

我们有一个当前向 NServiceBus (v3) 服务发送命令的 ASP.NET MVC 应用程序。

该服务发布我们需要在 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 应用程序创建队列,也没有看到任何发送到主机的订阅消息。

我错过了什么吗?

4

1 回答 1

0

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

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

于 2013-09-11T19:27:59.767 回答