Rhino.Esb « Impossible de trouver aucun propriétaire de message pour »
-
27-10-2019 - |
Question
J'ai quelques services que je veux être en mesure de publier et de souscrire à des messages.
J'ai une application console de bus back-end qui a la configuration suivante:
<configSections>
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>
<castle>
<facilities>
<facility id="rhino.esb">
<bus
threadCount="1"
numberOfRetries="5"
endpoint="rhino.queues://localhost:50001/SonaTribeESB_Backend"
name="backend"/>
<messages />
</facility>
</facilities>
et est tiré à l'aide:
QueueUtil.PrepareQueue("backend");
_container = new WindsorContainer().AddFacility<WcfFacility>().Install(Configuration.FromAppConfig());
_container.Register(Component.For<IWindsorContainer>().Instance(_container));
Console.WriteLine("Backend: Starting to listen for incoming messages ...");
var host = new DefaultHost();
host.Start<BackendBootStrapper>();
Console.ReadLine();
J'ai alors un service WCF qui est a la configuration suivante esb:
<facilities>
<facility id="rhino.esb" >
<bus
threadCount="1"
numberOfRetries="5"
endpoint="rhino.queues://localhost:50002/SonaTribeESB_AccountClient"
name ="AccountClient"/>
<messages>
<add
name="Messages"
endpoint="rhino.queues://localhost:50001/SonaTribeESB_Backend" />
</messages>
</facility>
</facilities>
Et ce qui suit dans le global.asax:
Container.Install(Configuration.FromAppConfig());
Container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
var bus = Container.Resolve<IStartableServiceBus>();
bus.Start();
Et puis un second service avec la configuration suivante:
<facilities>
<facility id="rhino.esb" >
<bus
threadCount="1"
numberOfRetries="5"
endpoint="rhino.queues://localhost:50003/SonaTribeESB_EventClient"
name ="EventClient"/>
<messages>
<add
name="Messages"
endpoint="rhino.queues://localhost:50001/SonaTribeESB_Backend" />
</messages>
</facility>
</facilities>
Mais chaque fois que je tente d'envoyer un message au bus en utilisant ceci:
_serviceBus.Send(new Esb.Messages.Account.EventAttendanceToggleMessage
{
AccountProxy = eventAttendanceRequest.Account,
EventProxy = eventAttendanceRequest.EventInstance,
Attending = attending
});
je reçois l'erreur suivante:
Impossible de trouver aucun propriétaire de message pour SonaTribe.Esb.Messages.Account.EventAttendanceToggleMessage
Quelqu'un at-il une idée de ce que je fais mal?
La solution
The problem with this was actually to do with the incorrect lifestyle being applied to the RavenDb DocumentStore in the IoC container! fixed.