2011-01-31 12 views
0

我有一些服務,我希望能夠發佈和訂閱消息。Rhino.Esb「找不到任何消息所有者」

我有具有以下配置後端總線控制檯應用程序:

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

,並使用被解僱:

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

然後我有一個WCF服務,這是具有以下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> 

而且在Global.asax如下:

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

然後用下面的配置第二個服務:

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

但每當我試圖用這個將消息發送到總線:

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

我得到以下錯誤:

找不到SonaTribe.Esb.Messages.Account.EventAttendanceToggleMessage的消息所有者

任何人都知道我做錯了什麼?

回答

0

這個問題實際上與不正確的生活方式被應用於IoC容器中的RavenDb DocumentStore有關!固定。

相關問題