Bus.Reply при вызове из Saga и не из Saga

У меня есть конечная точка NServiceBus, которая обрабатывает сохранение документов в системе управления документами. После сохранения документа я звоню Bus.Reply(new DocumentSaved{}).

Это отлично работает, когда я отправляю SaveDocument из саги (которая очень заботится об ответе), но не работает, когда я отправляю его из конечной точки моего веб-клиента (т.е. проекта MVC, который вообще не заботится об ответе) . Ошибка связана с тем, что у конечной точки моего веб-клиента нет очереди для обработки ответа.

Что я здесь делаю неправильно? (Я действительно не хочу создавать очередь для моего проекта MVC, чтобы хранить кучу ответов, которые никогда не будут обработаны.)


person Josh Kodroff    schedule 21.01.2015    source источник
comment
Является ли конечная точка MVC конечной точкой SendOnly?   -  person Mauro Servienti    schedule 23.01.2015
comment
Я понятия не имел, что существует такой вариант конфигурации! Пожалуйста, сделайте из этого ответ, и я обязательно отмечу его как принятый, пока не попробую.   -  person Josh Kodroff    schedule 23.01.2015


Ответы (1)


Ответы - это обычные сообщения. Единственное, что связывает исходные сообщения и полагается, — это идентификатор корреляции, который хранится в заголовке сообщения, и адрес отправителя, на который отправляется ответ.

Это означает, что все правила, применимые к обычным сообщениям, применимы и к ответам. Специальных «очередей ответов» нет. Ответы помещаются в обычные очереди, как и любые другие сообщения.

Я подозреваю, что у вас нет конфигурации сопоставления конечной точки сообщения в вашей веб-конечной точке. Я не уверен, имеет ли здесь какой-либо эффект конечная точка SendOnly, так как я предполагаю, что вы уже получили там сообщение, на которое хотите отправить ответ.

Я бы начал с проверки сопоставления сборки сообщения с конечной точкой и включения ведения журнала уровня отладки.

person Alexey Zimarev    schedule 01.02.2015