2014-05-22 85 views
1

我试图注册城堡LifestylePerWebRequest法的组成部分,不断收到错误: “看起来你忘了注册HTTP模块Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule 要解决这个附加 “注册组件

尽管我已经在web.config文件中注册了城堡模块 这是否与我正在使用Mvc-5有关?

我的代码:

container.Register(Component.For<ISiteTranslator>().UsingFactoryMethod(MvcApplication.TranslationFactory).LifestylePerWebRequest()); 

container.Resolve<ISiteTranslator>(); 

web配置:

<system.webServer>  
    <modules >   
      <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />      
    </modules> 
    </system.webServer> 

感谢

回答

1

这是在IIS7? From the Castle documentation

In order to function properly per web request requires a IHttpModule to be registered in your web.config: …

if you're running on IIS7 you may need to register it in system.webServer/modules section instead.

<configuration> 
    <system.webServer> 
     <modules> 
     <add name="PerRequestLifestyle" 
     type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, 
       Castle.Windsor" /> 
     </modules> 
    </system.webServer> 
</configuration>