与ASP.NET MVC4和StructureMap配置NServiceBus(Configurin

2019-11-01 19:45发布

我从安装的NuGet和structuremap创建structuremap.mvc4一个ASP.NET MVC 4 Web应用程序。 然后我加入了nservicebus和nservicebus.structuremap包,也从的NuGet。

我已经创建了structuremap一对夫妇mvc4应用没有问题之前,我已经按照与nservicebus和structuremap基本的pub / sub一些教程,并得到它的工作。

然而,当我试图把nservicebus到mvc4与structuremap不能很好地工作。 我现在遇到的问题是,对于MVC和DI下面MVC列出的nservice总线教程似乎希望开发人员能够使用内置的依赖注入容器。

http://support.nservicebus.com/customer/portal/articles/894008
http://support.nservicebus.com/customer/portal/articles/894123

如果你以前使用过的结构图,NuGet包很好地增加了解析器和运行使用WebActivator初始设置。 在那之后,我不知道会发生什么容器,所以我不能用它来设置NServiceBus生成器在Configure.With()。StructureMapBuilder(StructureMap集装箱)。

我有什么为了让nservicebus做,structuremap在asp.net MVC4发挥好? 我知道它的操作错误,但我不知道在这一点呢? 另外,没有第3版有messageendpointconfig地方有一些漂亮的配置角色? 这是否不是在网络环境中应用? 我想我可以只得到裁判的容器去,但似乎并不如此。

编辑:添加一些代码

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();

        Configure.With()
            .StructureMapBuilder(ObjectFactory.Container) //this obviously won't work
            .JsonSerializer()
            .Log4Net()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(true)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());

    }

编辑2:即使我得到过去的问题与StructureMap通过移动,我设置的依赖解析器的Application_Start(),NServiceBus仍然要为MessageForwardingInCaseOfFaultConfig和MsmqTransportConfig配置。

我想,我记得这些属性都应该通过在端点上配置的接口设置的角色进行自动配置?

Answer 1:

您需要将这些部分添加到您的web.config文件:

<configuration>
  <configSections>
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core"/>
  </configSections>

  <MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>
  <MsmqTransportConfig NumberOfWorkerThreads="1" MaxRetries="5"/>
</configuration>

NServiceBus V3不会自动创建这些!



文章来源: Configuring NServiceBus with ASP.NET MVC4 and StructureMap