2013-09-10 5 views
0

У нас есть приложение ASP.NET MVC, которое в настоящее время отправляет команды службе NServiceBus (v3).Веб-приложение, не подписавшееся на события NServiceBus

Служба публикует события, которые необходимо подписаться в веб-приложении, чтобы мы могли отображать уведомления в режиме реального времени для наших пользователей.

Автобус в данный момент инициализируется, как показано ниже в веб-приложения:

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> 

Однако обработчик события я создал в Интернете приложение не вызывается, для веб-приложения не создается очередь, и я не вижу сообщений о подписке, отправленных на хост.

Я что-то не хватает?

+1

Что говорят журналы? –

+0

Получают ли ваши события от 'IEvent' или следуют конвенции? –

+0

Это, вероятно, дикий удар, но он может иметь какое-то отношение к разрешениям. Попробуйте предоставить доступ к msmq для идентификации вашего сайта и посмотрите, что произойдет. –

ответ

0

После включения регистрации я увидел, что NServiceBus фактически не инициализировался (поэтому не создавались очереди).

Проблема оказалась в том, как я сконфигурировал Ninject, когда автобус лениво инициализировался. Быстрое изменение моих привязок и все сработало.