NServiceBus.Unicast.Transport.CompletionMessage не был зарегистрирован в сериализаторе

Набор интеграционных сервисов, использующих NServiceBus, был у меня на коленях (к сожалению, я не участвовал в первоначальной реализации, и человек, который действительно написал код, ушел).

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

NServiceBus.Unicast.Transport.CompletionMessage was not registered in the serializer. 
Check that it appears in the list of configured assemblies/types to scan.

Я проверил файлы конфигурации на серверах, и они почти идентичны; в частности MsmqTransportConfig а также UnicastBusConfig блоки идентичны. Основное различие между этими двумя средами заключается в том, что в рабочей среде уровни web/app/database находятся на отдельных серверах, тогда как в среде тестирования они все находятся на одном сервере. Однако вызовы службы интеграции выполняются только с уровня приложения, и даже в рабочем состоянии уровень приложений и службы интеграции находятся на одном сервере (по крайней мере, на данный момент), поэтому я не уверен, что это должно иметь значение.

Я загрузил документацию (файл.chm), но в каждой теме, на которую я нажимаю, написано "неработающая ссылка".

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

Мы настраиваем NServiceBus следующим образом:

        NServiceBus.Configure.WithWeb()
            .Log4Net()
            .StructureMapBuilder(ObjectFactory.Container)
            .XmlSerializer()
            .MsmqTransport()
                .IsTransactional(true)
                .PurgeOnStartup(false)
            .MsmqSubscriptionStorage()
            .UnicastBus()
                .LoadMessageHandlers()
                .ImpersonateSender(false)
            .CreateBus()
            .Start();

и транспорт настроен так:

  <MsmqTransportConfig
    InputQueue="OutboundSubscriptionRequestQueue"
    ErrorQueue="error"
    NumberOfWorkerThreads="1"
    MaxRetries="5"
  />

  <UnicastBusConfig
    DistributorControlAddress=""
    DistributorDataAddress=""
    ForwardReceivedMessagesTo="">
    <MessageEndpointMappings>
    </MessageEndpointMappings>
  </UnicastBusConfig>

Я был бы очень признателен за любую помощь. Я не обязательно хочу получить ответ, просто толчок в правильном направлении... сейчас я чувствую, будто стреляю в темноте.

1 ответ

Решение

Похоже, что nsb не может сканировать nservicebus.core.dll на наличие типов. Можете ли вы проверить, что он присутствует, а не заблокирован и что log4net.dll развернут в том же каталоге.

Другие вопросы по тегам