NServiceBus: удобочитаемые тела сообщений

Я начал изучать NServiceBus, чтобы определить, можем ли мы использовать NServiceBus так, как мы хотим. Когда я настроил NServiceBus для использования JsonSerializer для сериализации, я ожидал, что смогу читать содержимое сообщений непосредственно в очереди. Но вместо текста в формате JSON тело имеет шестнадцатеричный формат. Мы хотели бы иметь возможность открывать очередь/таблицу и просматривать содержимое сообщений без необходимости преобразовывать каждое сообщение из шестнадцатеричного формата в текстовый. Это возможно?

PS: я использую NServiceBus v 5.2.14 и NServiceBus.Host v 6.0.0.


person jk1990    schedule 02.05.2016    source источник
comment
Какой транспорт вы используете? MSMQ?   -  person Udi Dahan    schedule 03.05.2016
comment
@UdiDahan: я экспериментирую как с MSMQ, так и с SQL Transport (разные решения, которые не взаимодействуют друг с другом). Однако в обоих решениях сообщения хранятся в шестнадцатеричном формате. Ps: просто для уточнения: сообщение правильно отформатировано как JSON (преобразователь шестнадцатеричного текста в текст отображает ожидаемый JSON)   -  person jk1990    schedule 03.05.2016
comment
Какой инструмент вы используете для чтения сообщений?   -  person Sean Farmar    schedule 04.05.2016
comment
встроенное (т.е. управление компьютером) средство просмотра очереди сообщений Windows показывает тела сообщений только в шестнадцатеричном формате. Попробуйте использовать другой инструмент.   -  person Chris Bednarski    schedule 04.05.2016
comment
Для MSMQ я просматриваю сообщения в обозревателе серверов Visual Studio. Для SQL Transport я смотрю строки в базе данных.   -  person jk1990    schedule 04.05.2016


Ответы (1)


Есть несколько вариантов:

MSMQ

Я искренне считаю, что для MSMQ лучшим вариантом будет использование ServiceInsight. Это дает вам гораздо больше, чем просто просмотр полезной нагрузки сообщения, но если вам нужно знать, почему ваша система ведет себя так, как она есть, это лучший вариант.

Что касается собственных инструментов для MQMS, существует несколько вариантов http://docs.particular.net/nservicebus/msmq/viewing-message-content-in-msmq

Транспорт SQL-сервера

Хотя ServiceInsight работает со всеми транспортами, если вы используете транспорт SQL и хотите просто просмотреть содержимое своих сообщений, вы можете выполнить простой запрос SQL:

SELECT CONVERT(VARCHAR(max), [Body]) FROM [YourQueue]

Сказав это, вы технически преобразуете сообщение в текст с помощью этого запроса.

person Hadi Eskandari    schedule 04.05.2016
comment
Спасибо, я проверю ServiceInsight :) - person jk1990; 04.05.2016
comment
Другим предложением для MSMQ может быть Queue Explorer, мы используем оба, и оба они предоставляют различные преимущества. Service Insight отлично подходит для визуализации потока сообщений в вашем приложении, а обозреватель очередей представляет собой серьезное обновление по сравнению со встроенным в Windows диспетчером MSMQ. - person Yannick Meeus; 20.05.2016
comment
@YannickMeeus Спасибо, хотя это уже упоминалось на странице документа, а ссылка выше. - person Hadi Eskandari; 20.05.2016