【问题标题】:Unclear how to configure NServiceBus with Castle Windsor in ASP.NET MVC 4 application不清楚如何在 ASP.NET MVC 4 应用程序中使用 Castle Windsor 配置 NServiceBus
【发布时间】:2012-10-19 02:09:02
【问题描述】:
我正在使用 NServiceBus 3.2.7、Castle Windsor 3.1 和 ASP.Net MVC 4。我目前正在使用 Windsor 教程配置 Windsor...Windsor tutorial - ASP.NET MVC 3 application
我不确定如何在此配置中设置 NServiceBus。我想维护安装程序模式,并且我不会运行主机(我相信)。此解决方案内部是处理所有消息的主机进程,它使用典型的 Endpointconfiguration 和 Windsor 来处理所有容器注册。
让 web 项目发送消息是事后的想法,我不想改变我配置 web 项目以添加 NServiceBus 的方式。如果有人可以提供如何执行此操作的示例,那太棒了。我想它会在一个类似于教程中的持久性设施的设施中,但我仍然有点不确定如何适当地做到这一点。
【问题讨论】:
标签:
asp.net-mvc-4
castle-windsor
nservicebus
【解决方案1】:
结果很简单。
只需创建另一个安装程序类(因为似乎CastleWindsorBuilder() 需要传入的容器。我试图创建一个设施,这是我的问题。)我创建了一个安装程序类,如下所示:
public class NServiceBusInstaller: IWindsorInstaller {
public void Install(IWindsorContainer container, IConfigurationStore store) {
Configure.With()
.DefineEndpointName(ConfigurationManager.AppSettings["InputQueue"])
.CastleWindsorBuilder(container)
.XmlSerializer()
.MsmqTransport()
.UnicastBus()
.SendOnly();
}
}
AppSettings 键是进程主机也在等待消息的输入队列,因此一旦它从控制器发送消息,它就会被放置在此队列中,并且主机会立即接收它。此外,通过这样做,我可以在部署测试和生产时为其分配适当的服务器。
幸运的是,这是我在 MVC 应用程序中工作所需的所有配置,我还必须为 Windsor 3.1 设置重定向。