asp.net mvc - Parece que olvidó registrar el módulo http con el castillo de Windsor con IIS7
asp.net-mvc iis-7 (5)
Estoy usando windsor DI framework en uno de mis proyectos MVC. El proyecto funciona bien cuando traté de ejecutar Visual Studio 2008.
Pero cuando traté de ejecutar el proyecto creando una aplicación en IIS7, recibí el siguiente mensaje de error:
Parece que olvidó registrar el módulo http Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule Agregue ''<add name = "PerRequestLifestyle" type = "Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" />'' a la sección de su sitio web. config
Pero este módulo ya existe en la sección httpmodule del archivo web.config.
¿Alguien sabe lo que tengo que hacer para eliminar este problema?
Me ayudó:
<system.web>
<httpModules>
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
</httpModules>
Me he encontrado con este problema en mi entorno de desarrollo. Lo que vale la pena observar es esta etiqueta:
<validation validateIntegratedModeConfiguration="false"/>
Si bien obviamente hace lo que dice en la lata, puede detener esos molestos errores que aparecen. Suponiendo que el resto de su configuración está funcionando bien.
Lo que funcionó para mí:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<remove name="PerRequestLifestyle"/>
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor"/>
</modules>
</system.webServer>
Intenta agregarlo a la sección system.webServer
también?
<configuration>
<system.web>
<httpModules>
<add name="PerRequestLifestyle" type="..." />
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="PerRequestLifestyle" type="..." />
</modules>
</system.webServer>
</configuration>
Tuve el mismo error, pero fue causado por otra razón:
Traté de resolver IService
en Application_Start
para el procesamiento personalizado de clase de ruta, pero el tipo para IService
se registró con PerWebRequestLifestyle
. El subsistema de enrutamiento se mantiene en un nivel más alto que la solicitud web, y los objetos no existen en el tiempo de procesamiento de la ruta.
Escribí una publicación de blog que explica el problema en un nivel de código al descompilar Castle.Windsor.dll.