Configuration 如何解决与NHibernateSagPersister的autowire冲突?

Configuration 如何解决与NHibernateSagPersister的autowire冲突?,configuration,nservicebus,saga,Configuration,Nservicebus,Saga,我正在尝试连接我的第一个传奇,但无法让接收端点正确处理开始消息。我得到以下例外情况: SagaMessageHandler处理失败 消息 Spring.Objects.Factory.UnsatifiedPendencyException: 创建名为的对象时出错 'NServiceBus.Sagas.Impl.SagaMessageHandler' :表示未满足的依赖项 通过对象属性“Persister”: 有两个类型为的对象 [NServiceBus.Saga.ISagaPersister]用

我正在尝试连接我的第一个传奇,但无法让接收端点正确处理开始消息。我得到以下例外情况:

SagaMessageHandler处理失败 消息 Spring.Objects.Factory.UnsatifiedPendencyException: 创建名为的对象时出错 'NServiceBus.Sagas.Impl.SagaMessageHandler' :表示未满足的依赖项 通过对象属性“Persister”: 有两个类型为的对象 [NServiceBus.Saga.ISagaPersister]用于 应按类型自动连线时 只有一个人能够 的autowire属性“Persister” 对象 'NServiceBus.Sagas.Impl.SagaMessageHandler'

我猜内存中的persister和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();

    }
}
public类SubscriberEndpointConfig:IWantCustomInitialization,IConfigureThisEndpoint
{      
公共void Init()
{
_logger.Info(“订户正在初始化…”);
用()配置
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport().IsTransaction(true).IsolationLevel(IsolationLevel.ReadCommitted).PurgeOnStartup(false)
.UnicastBus().LoadMessageHandler(首先是.Then())
.Sagas()
.NHibernateSagaPersister()
.Log4Net();
}
}

如果删除LoadMessageHandlers(),错误将消失,但我的处理程序当然不会被调用。你知道这里怎么了吗?当我在生产配置文件中使用AsA_服务器时,saga工作正常,没有自定义初始化,但我需要使用它,因为其他原因。

nservicebus配置文件正在为您配置持久化程序(http://www.nservicebus.com/Profiles.aspx)

NServiceBus.Lite(默认)=内存中

NServiceBus.Integration=NHibernate+Sqlite

NServiceBus.Production=NHibernate


因此,在您的情况下,您可以删除对NHibernateSagaPersister()的调用,让配置文件完成它的工作。

nservicebus配置文件正在为您配置persister(http://www.nservicebus.com/Profiles.aspx)

NServiceBus.Lite(默认)=内存中

NServiceBus.Integration=NHibernate+Sqlite

NServiceBus.Production=NHibernate


因此,在您的情况下,您可以删除对NHibernateSagaPersister()的调用,让配置文件完成它的工作。

即使使用IWantCustomInitialization,您是否只需要对非通用主机进行流畅的配置?或者在其他什么情况下?即使使用IWantCustomInitialization?那么,对于非通用主机,您是否只需要流畅的配置?或者在其他什么情况下?