NServiceBus网关IOC和MessageHandler问题

时间:2012-12-10 04:11:39

标签: castle-windsor nservicebus

我已经设置了一个NSB网关演示项目,一切正常。 (SiteA将msg发送到SiteB,SiteB回复确认。即.Bus.Reply())

然后我继续使用.CatleWindsorBuilder()而不是.DefaultBuilder()。 主要是工作,注入我的自定义类型。但是,SiteB上的Bus.Reply()抛出异常。

Bus.Reply<CustomerOrderReceived>(m => { m.BranchOffice = "US"; m.Description = message.Description; });

例外是:“找不到消息类型的处理程序:CustomerOrderReceived” 听起来好像找不到SiteA的OrderReceivedMessageHandler : IHandleMessages<CustomerOrderReceived>

这是SiteA的EndpointConfig

_container = new WindsorContainer();

        Configure.With()
            .CastleWindsorBuilder(_container)
            .XmlSerializer()
            .MsmqTransport().IsTransactional(true)
            .FileShareDataBus(".\\databus").UnicastBus().ImpersonateSender(false).LoadMessageHandlers();

        _container.Register(Component.For<IOrderTask>().ImplementedBy<OrderTask>());
        _container.Register(Component.For<IWindsorContainer>().Instance(_container));
        _container.Install(FromAssembly.InThisApplication());

然而,SiteA中的消息处理程序一切正常。

想知道是否有人在NSB拥有Castle Windsor IOC的工作样本?我在谷歌上找不到任何有用的东西。

1 个答案:

答案 0 :(得分:0)

得到排序!通过使用StructureMapBuilder()

但是,现在我认为在Gateway场景中处理Bus.Reply()时会出现NSB错误。