0

nServiceBusは初めてです。

nServiceBusバージョン:2.6.0.1505

佐賀をデータベースに残したい。これが機能しない理由:

public class MessageEndpoint : IConfigureThisEndpoint, AsA_Server, IWantCustomInitialization
{
    public void Init()
    {
        Configure.With().DefaultBuilder().Sagas().NHibernateSagaPersister();
    }
}

エラーが発生します:

OnStartの処理中に状態Initial中にTopshelf.Internal.ServiceController`1[[NServiceBus.Host.Internal.GenericHost、NServiceBus.Host、Version = 2.6.0.1505、Culture = neutral、PublicKeyToken=9fc386479f8a226c]]で例外が発生しました

このバージョンのnServiceBusでこのようにエンドポイントを構成することは可能ですか?

編集:

エンドポイント構成が次のように変更されました。

public class MessageEndpoint : IConfigureThisEndpoint, 
    AsA_Server, 
    IWantCustomInitialization
{
    public void Init()
    {
        Configure.With()
            .DefaultBuilder()
            .XmlSerializer()
            .Sagas()
            .NHibernateSagaPersister();
    }
}

Sagaは実行されますが、例外がスローされます。

2012-07-30 16:36:12,229 [Worker.5] INFO NServiceBus.Unicast.UnicastBus [(null)] <(null)>-受信したメッセージMessages.StartCmd、Messages、Version = 1.0.0.0、Cultu re = neutral 、PublicKeyToken = null with ID 0adbb2fd-4a7d-4fa2-ae09-70bbcbbc8241 \ 206 9 from sender MyWebClient @ USER-PC 2012-07-30 16:36:12,232 [Worker.5] INFO NServiceBus.Unicast.UnicastBus [(null) ] <(null)>-着信メッセージでWindows IDが指定されていないため、偽装できません。これは、相互運用シナリオでは一般的です。

2012-07-30 16:36:12,294 [Worker.5] WARN NServiceBus.Unicast.Transport.Msmq.Msmq Transport [(null)] <(null)>-ID=のメッセージの「トランスポートメッセージ受信」イベントの発生に失敗しました0adbb2fd-4a7d-4fa2-ae09-70bbcbbc8241 \ 2069 Spring.Objects.Factory.UnsatisfiedDependencyException:「NServiceBus.Sagas.Impl.SagaMessageHandler」という名前のオブジェクトの作成中にエラーが発生しました:オブジェクトプロパティ「Persister」を通じて表現された不満の依存関係:2つのオブジェクトがありますタイプ別の自動配線のタイプ[NServiceBus.Saga.ISagaPersister]の場合、オブジェクト'NServiceBus.Sagas.Implのプロパティ'Persister'を自動配線できるようにするには1つだけである必要があります。SagaMessageHandler'。Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.Autowi reByType(文字列名、RootObjectDefinition定義、
Spring.Objects.Factory.Support.AbstractObjectFactory.GetObjectInternal(文字列名、Type requiredType、Object []引数、ブール値のsuppressConfigure)at Spring.Objects.Factory.Support.AbstractObjectFactory.GetObject(String name)at Spring.Objects.Factory .Support.DefaultListableObjectFactory.GetObjectsOfTy pe(Type type、Boolean includePrototypes、Boolean includeFactoryObjects)at Spring.Context.Support.AbstractApplicationContext.GetObjectsOfType(Type ty pe、Boolean includePrototypes、Boolean includeFactoryObjects)at NServiceBus.ObjectBuilder.Spring.SpringObjectBuilder.NService lder.Common.IContainer.Build(Type typeToBuild)at NServiceBus.ObjectBuilder.Common.CommonObjectBuilder.NServiceBus.ObjectBui lder.IBuilder.BuildAndDispatch(Type typeToBuild、Action`1 action)
NServiceBus.Unicast.UnicastBus.DispatchMessageToHandlersBasedOnType(IMessa ge toHandle、Type messageType)at NServiceBus.Unicast.UnicastBus.HandleMessage(TransportMessage m)at NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object sender、TransportMessageReceivedEventArgs e)at .Msmq.MsmqTransport.OnTransportMessageReceive d(TransportMessage msg)

これが失敗する理由のようです:

タイプ別の自動配線には、タイプ[NService Bus.Saga.ISagaPersister]のオブジェクトが2つありますが、オブジェクト'NServiceBus.Sagas.Implのプロパティ'Persister'を自動配線できるのは1つだけである必要があります。SagaMessageHandler '

4

1 に答える 1

1

NHibernateを使用してサガを永続化する方法は次のとおりです。

エンドポイント構成(IWantCustomInitializationは必要ありません):

public class MessageEndpoint : IConfigureThisEndpoint, AsA_Server
{
}

秘訣は、本番プロファイルを使用するようにホストに指示することです-http://docs.particular.net/nservicebus/hosting/nservicebus-host/profiles

ここに画像の説明を入力してください

于 2012-07-30T14:26:18.013 に答える