ОБНОВЛЕНИЕ Я обнаружил проблему. Я не наследовал ICommand, поэтому добавил соглашение, однако теперь получаю следующее исключение:
Целевая очередь «Возмещение» не найдена. Возможно, вы неправильно настроили назначение для этого типа сообщений (Reimbursement.Messages.Commands.RequestForReimbursementCommand, Reimbursement.Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) в MessageEndpointMappings раздела UnicastBusConfig в файле конфигурации. Также может случиться так, что данная очередь просто еще не создана или была удалена.
Я оцениваю NServiceBus для нашей компании, используя SqlTransport, и столкнулся с проблемой конфигурации.
Вот мой app.config для моего отправителя:
<configuration>
<configSections>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="NServiceBus/Outbox" value="true"/>
</appSettings>
<connectionStrings>
<add
name="NServiceBus/Transport"
connectionString="Data Source=INLS-03466\ANABOLIC; Initial Catalog=CMS; Integrated Security=True;"/>
<add
name="NServiceBus/Persistence"
connectionString="Data Source=INLS-03466\ANABOLIC; Initial Catalog=CMS; Integrated Security=True;"/>
<add
name="NServiceBus/Transport/Reimbursement"
connectionString="Data Source=INLS-03466\ANABOLIC; Initial Catalog=Reimbursement; Integrated Security=True;"/>
</connectionStrings>
<UnicastBusConfig>
<MessageEndpointMappings>
<add Assembly="Reimbursement.Messages" Endpoint="Reimbursement" />
</MessageEndpointMappings>
</UnicastBusConfig>
</configuration>
Когда я иду, чтобы отправить команду, я получаю следующее исключение:
Не удалось найти назначение для сообщения типа Reimbursement.Messages.Commands.RequestForReimbursementCommand. Проверьте раздел конфигурации этой конечной точки на наличие записи либо для этого конкретного типа сообщения, либо для его сборки.
Отправитель ссылается на сборку Reimbursement.Messages, поэтому я не уверен, почему он не может решить эту проблему.
Любая помощь будет здорово!