我正在嘗試連接我的第一個Saga,並且無法讓接收端點正確處理啓動消息。我收到以下例外情況:如何解決與NHibernateSagaPersister的自動裝配衝突?
SagaMessageHandler處理失敗 消息。 Spring.Objects.Factory.UnsatisfiedDependencyException:與名稱 「NServiceBus.Sagas.Impl.SagaMessageHandler」 錯誤創建對象:不合格依賴通過對象屬性「持留」表示 : 有 類型的2個對象[NServiceBus.Saga .ISagaPersister]爲 autowire類型,當應該有 已經只有1能夠 autowire屬性'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時沒有自定義初始化,但是我需要將其用於其他原因。
即使使用IWantCustomInitialization? – jlew
是的,你可以添加自己的配置文件,如果你需要更多的控制 –
所以是真的,你只需要非通用主機的流暢配置?或在其他情況下? – jlew