1

我正在使用 NServiceBus 3.2.7、Castle Windsor 3.1 和 ASP.Net MVC 4。我正在使用 Windsor 教程配置 Windsor... Windsor 教程 - ASP.NET MVC 3 应用程序

我不确定如何在此配置中设置 NServiceBus。我想维护安装程序模式,我不会运行主机(我相信)。此解决方案内部是处理所有消息的主机进程,它使用典型的 Endpointconfiguration 和 Windsor 来处理所有容器注册。

让 web 项目发送消息是事后的想法,我不想改变我配置 web 项目以添加 NServiceBus 的方式。如果有人可以提供如何执行此操作的示例,那就是极好的。我认为它将位于类似于教程中的持久性设施的设施中,但我仍然有点不确定如何适当地做到这一点。

4

1 回答 1

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 设置重定向。

于 2012-10-18T18:09:02.930 回答