Я пытаюсь подключить свою первую Saga, и мне не удалось заставить принимающую конечную точку правильно обрабатывать начальное сообщение. Я получаю следующее исключение:
SagaMessageHandler Не удалось обработать сообщение. Spring.Objects.Factory.UnsatisfiedDependencyException: ошибка при создании объекта с именем «NServiceBus.Sagas.Impl.SagaMessageHandler»: неудовлетворенная зависимость, выраженная через свойство объекта «Persister»: существует 2 объекта типа [NServiceBus.Saga.ISagaPersister] для автоматического подключения по типу , хотя должен был быть только 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 в производственном профиле без пользовательской инициализации, но мне нужно использовать это по другим причинам.