私はIProvideConfiguration<UnicastBusConfig>
とそのMessageEndpointMappings
が廃止されているNServiceBus 6に更新しました。NServiceBus 6では、エンドポイントは公開エンドポイントを知らずにイベントを購読できますか?
私はドキュメントの発行/購読の手順に従っています。私が理解しているように、イベントを購読するときは、公開エンドポイントに明示的に名前を付ける必要があります。
config.MessageEndpointMappings.Add(
new MessageEndpointMapping
{
AssemblyName = MyAssemblyName,
TypeFullName = typeof(IMyEvent)),
Endpoint = "SubscribingEndpoint"
});
今:
前に、私は、イベントインターフェイスの特定のエンドポイントは、加入者の名前になりますができ これは離れて行くと、私は次のことを持っています。だからここに私はIMyEventの出版社ではなく、加入者を指定する必要があります
var routing = endpointConfiguration.UseTransport<MsmqTransport>().Routing();
endpointConfiguration.SendFailedMessagesTo("error");
endpointConfiguration.AuditProcessedMessagesTo("audit");
//register command
routing.RouteToEndpoint(typeof(MyCommand), "SomeEndpoint");
//subscribe to event
routing.RegisterPublisher(typeof(IMyEvent), "PublishingEndpoint"); //?
:これは完全にIProvideConfiguration
クラスの必要性を置き換えます。 NSB5では、これは必要ではありませんでした。
イベントが複数のエンドポイントによって公開されている場合はどうすればよいですか?あなたの質問に答えるために
イベントは常に1つのエンドポイントからのみ公開されていました(ルールに従うと、1つのサイト運営者が...)、AFAIKは常にイベントの発行者アドレスを提供する必要がありました。行う? –
@SeanFarmar私は、イベントは1つのエンドポイントによってのみ公開されるべきであることを理解します。 NSB5では、上記のように、サブスクライバは、パブリッシャのエンドポイント名ではなく、MessageEndpointMappingで独自のエンドポイント名を使用してサブスクライブします。 v5のドキュメントには、それほど詳しく述べられていません。これは、イベントVSコマンドの質問よりも、設定問題の問題です。この場合、コマンドの送信は、ルーティングを設定する作業が多いことを除けば、コマンドを送信することができます。 – John
私は混乱しています。あなたは、エンドポイントの名前ではなく、出版社のエンドポイント名を使用できるというリンクを提供できますか? AFAIKは常にサブスクライバがパブリッシャにサブスクリプションメッセージを送信するので、パブリッシャのエンドポイント名を設定する必要があります(それは意味をなさない)... –