Rhino.esb "No pudo encontrar ningún propietario de mensajes para"
-
27-10-2019 - |
Pregunta
Tengo algunos servicios de los que quiero poder publicar y suscribirme a mensajes.
Tengo una aplicación de consola de bus de backend que tiene la siguiente configuración:
<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>
y se dispara usando:
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();
Luego tengo un servicio WCF que tiene la siguiente configuración de 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>
Y lo siguiente en el global.asax:
Container.Install(Configuration.FromAppConfig());
Container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
var bus = Container.Resolve<IStartableServiceBus>();
bus.Start();
Y luego un segundo servicio con la siguiente configuración:
<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>
Pero cada vez que intento enviar un mensaje al bus usando esto:
_serviceBus.Send(new Esb.Messages.Account.EventAttendanceToggleMessage
{
AccountProxy = eventAttendanceRequest.Account,
EventProxy = eventAttendanceRequest.EventInstance,
Attending = attending
});
Obtuve el siguiente error:
No se pudo encontrar ningún propietario de mensajes para Sonatribe.esb.messages.account.eventAttendancetGlemessage
¿Alguien tiene alguna idea de lo que estoy haciendo mal?
Solución
¡El problema con esto tenía que ver con el estilo de vida incorrecto que se aplica a la tienda de documentos RavendB en el contenedor del COI! fijado.