NServiceBus - сервер выдает предупреждение о пустом сообщении на консоль

2013-03-28 10:18:32,374 [Worker.5] 
WARN  NServiceBus.Unicast.UnicastBus [(null)] <(null)> - 
Received an empty message - ignoring.

У меня есть клиент, который bus.send("сервер", команда) переходит с веб-сайта mvc4 на обработчик сообщений. Обработчик сообщений был настроен по умолчанию без какой-либо пользовательской инициализации.

Это моя конфигурация на стороне веб-сайта в файле global.asax.

        Configure.With()
            .StructureMapBuilder(container)
            .JsonSerializer()
            .Log4Net()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(true)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());         

Я просмотрел событие публикации NServicebus - получает пустое сообщение, но это не помогло , у меня нет свойств только для чтения.


person ton.yeung    schedule 28.03.2013    source источник


Ответы (2)


Проблема аналогична связанному вопросу в ОП. Я обнаружил, что методы сериализации должны совпадать между отправителем и сервером. Мне пришлось добавить пользовательскую инициализацию на стороне сервера и добавить конструктор по умолчанию, а также сериализатор json, чтобы они соответствовали веб-стороне, чтобы сообщения работали правильно.

person ton.yeung    schedule 28.03.2013

Еще одна вещь, которую я обнаружил, заключалась в том, что я использовал IWantCustomInitialization с приведенной ниже конфигурацией:

Configure.With(typeof(TransactionDetailsHandler).Assembly) // this is problematic one
                .CastleWindsorBuilder(container)
                .DefaultBuilder();

Я не указал тип сборки своего сообщения в Configure. С добавлением, что решил проблему.

person Miral    schedule 01.06.2013