Я пытаюсь подключить свою первую Сагу, и мне не удалось заставить получающую конечную точку правильно обработать стартовое сообщение. Я получаю следующее исключение:
SagaMessageHandler Ошибка обработки
сообщение.
Spring.Objects.Factory.UnsatisfiedDependencyException:
Ошибка создания объекта с именем
'NServiceBus.Sagas.Impl.SagaMessageHandler'
: Выражена неудовлетворенная зависимость
через свойство объекта 'Persister':
Есть 2 объекта типа
[NServiceBus.Saga.ISagaPersister] для
AutoWire по типу, когда там должно
был только 1, чтобы иметь возможность
автопроволочная собственность 'Persister' из
объект
'NServiceBus.Sagas.Impl.SagaMessageHandler'.
Я предполагаю, что персистент в памяти и NHibernateSagaPersister конфликтуют, но я не могу понять, как решить эту проблему. Моя конфигурация такая:
public class SubscriberEndpointConfig : IWantCustomInitialization, IConfigureThisEndpoint
{
public void Init()
{
_logger.Info("Subscriber is initializing..");
Configure.With()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport().IsTransactional(true).IsolationLevel(IsolationLevel.ReadCommitted).PurgeOnStartup(false)
.UnicastBus().LoadMessageHandlers(First<GridInterceptingMessageHandler>.Then<SagaMessageHandler>())
.Sagas()
.NHibernateSagaPersister()
.Log4Net();
}
}
Если я удаляю LoadMessageHandlers (), ошибка исчезает, но, конечно, мой обработчик никогда не вызывается. Есть идеи, что здесь не так? Сага работает правильно, когда я использую AsA_Server в производственном профиле, без пользовательской инициализации, но мне нужно использовать это по другим причинам.