NServiceBus "CreateBus ()" возвращает ноль - PullRequest
4 голосов
/ 31 января 2012

Я использую NServiceBus 2.6.0.1504 на 32-битном Windows Server 2003.

Сгенерированный файл журнала указывает, что все подключается, но по какой-то причине CreateBus () возвращает ноль.Не обращайте внимания на мой код отладки:)

        SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);

        var one = Configure.With(typeFinder.GetAssemblies());
        var two = one.DefaultBuilder();
        var three = two.MsmqSubscriptionStorage();
        var four = three.XmlSerializer();
        var five = four.MsmqTransport();
        var six = five.IsTransactional(false);
        var seven = six.PurgeOnStartup(true);
        var eight = seven.UnicastBus();
        var nine = eight.LoadMessageHandlers();
        var ten = nine.ImpersonateSender(false);
        var eleven = ten.CreateBus();
        if (eleven == null)
            throw new Exception("createbus");
        var twelve = eleven.Start();

Всегда генерируется исключение с сообщением "createbus".

Это работает на моем компьютере разработчика с Windows Server 2008 R2 64 бит.

Вот мой конфиг для веб-приложения.

  <MsmqSubscriptionStorageConfig Queue="MedXChangeSubcriptions" />
  <MsmqTransportConfig InputQueue="MedXChangeForms" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="MethodFactory.MedXChange.Library" Endpoint="MedXChangeWeb" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

Есть идеи?Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 августа 2012

NServiceBus будет возвращать ноль, если шина уже была создана . Поэтому определите, кто-то уже создает для вас экземпляр автобуса.

В моем сценарии мы непоследовательно определяли конфигурации конечных точек. В одном процессе мы реализовали бы IConfigureThisEndpoint, а затем явно сконфигурировали и создали экземпляр шины. В другом процессе мы бы унаследовали от AsA_Publisher, который неявно создает для вас шину; и когда пришло время явно определять конфигурацию нашей шины для этого другого процесса, мы бросали NullReferenceException на свободный метод CreateBus. Удаление наследования AsA_Publisher решило проблему.

Надеюсь, это поможет!

...