我已经设置了一个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的工作样本?我在谷歌上找不到任何有用的东西。
答案 0 :(得分:0)
得到排序!通过使用StructureMapBuilder()
但是,现在我认为在Gateway场景中处理Bus.Reply()时会出现NSB错误。