Question

I have some services which i want to be able to publish and subscribe to messages from.

I have a backend bus console app which has the following configuration:

<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>

and is fired using:

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();

I then have a WCF service which is has the following esb config:

<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>

And the following in the global.asax:

Container.Install(Configuration.FromAppConfig());
Container.Kernel.AddFacility("rhino.esb", new RhinoServiceBusFacility());
var bus = Container.Resolve<IStartableServiceBus>();
bus.Start();

And then a second service with the following config:

<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>

But whenever I try to send a message to the bus using this:

 _serviceBus.Send(new Esb.Messages.Account.EventAttendanceToggleMessage
                                {
                                    AccountProxy = eventAttendanceRequest.Account,
                                    EventProxy = eventAttendanceRequest.EventInstance,
                                    Attending = attending
                                });

I get the following error:

Could not find no message owner for SonaTribe.Esb.Messages.Account.EventAttendanceToggleMessage

Anyone got any idea what i'm doing wrong?

Was it helpful?

Solution

The problem with this was actually to do with the incorrect lifestyle being applied to the RavenDb DocumentStore in the IoC container! fixed.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top