私は最初のSagaを結成しようとしており、受信側のエンドポイントに開始メッセージを正しく処理させることができませんでした。NHibernateSagaPersisterとのオートワイヤー競合を解決するにはどうしたらいいですか?
SagaMessageHandler失敗した処理 メッセージが表示されます。 Spring.Objects.Factory.UnsatisfiedDependencyException:「NServiceBus.Sagas.Impl.SagaMessageHandler」 を名前 を持つオブジェクトを作成 エラー:不満の依存関係は、オブジェクトプロパティ「存続」を介して を表明: タイプ の2つのオブジェクトがあります[NServiceBus.Saga .ISagaPersister]種類によって autowireため、 がされている必要があるときだけ1 autowireプロパティに オブジェクト「NServiceBus.Sagas.Impl.SagaMessageHandler」の存続」できるようにします。
メモリ内のペリスターとNHibernateSagaPersisterの両方が競合していると推測していますが、これを解決する方法がわかりません。私はしかし、もちろん、私のハンドラが呼び出されることはありませんLoadMessageHandlersを()、エラーが消え削除した場合
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();
}
}
:私の構成はこれです。何がここに間違っているアイデア?プロダクションプロファイルでAsA_Serverをカスタム初期化せずに使用している場合、サガは正常に動作しますが、他の理由でそれを使用する必要があります。
IWantCustomInitializationを使用しても、 – jlew
より多くの制御が必要な場合は、独自のプロファイルを追加することができます –
非汎用ホストの場合は流暢な設定だけが必要ですか?または他の状況の下で? – jlew