0

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

然后我继续使用 .CatleWindsorBuilder() 而不是 .DefaultBuilder()。大部分工作,注入了我的自定义类型。但是,当 SiteB 的 Bus.Reply() 时抛出异常。

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

例外是:“找不到消息类型的处理程序:CustomerOrderReceived”听起来好像找不到 SiteAOrderReceivedMessageHandler : 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 有温莎城堡 IOC 的工作样本?我只是在谷歌上找不到任何有用的东西。

4

1 回答 1

0

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

但是,现在我相信这是在网关场景中处理 Bus.Reply() 时的 NSB 错误。

于 2012-12-13T02:32:22.700 回答