2011-05-28 11 views
5

Estoy usando Team City para la integración continua, para una aplicación .Net 4 ASP MVC 3.Atascado con ASPNETCOMPILER: error ASPRUNTIME: El tipo no se resuelve para el miembro 'FluentNHibernate.Cfg.FluentConfigurationException, FluentNHibernate

En mi máquina dev puedo generar y ejecutar mi aplicación, pero en el Sever acumulación Estoy recibiendo el siguiente error:

ASPNETCOMPILER : error ASPRUNTIME: Type is not resolved for member 'FluentNHibernate.Cfg.FluentConfigurationException,FluentNHibernate, Version=1.2.0.712, Culture=neutral, PublicKeyToken=8aa435e3cb308880' 

El conjunto FluentNHibernate es referenciado por el proyecto y que incluso hemos añadido el ensamblado a la sección de ensamblados web.config, pero sigo recibiendo el error.

¿Qué puedo hacer para diagnosticar el problema?

+0

¿Puedes verificar si el dll FluentNHibernate está en la carpeta bin de tu aplicación? – zsong

+0

Sí, el conjunto está en la carpeta bin y los números de versión coinciden. – ilivewithian

+0

Ok, entonces compruebe la carpeta bin en su servidor local y la de su máquina de desarrollo para ver si son exactamente iguales. – zsong

Respuesta

10

Para resumir el comentario de Rob White, el problema es que cierto código se ejecuta en WebActivator.PreApplicationStartMethod. La solución es mover ese código a Application_Start en el Global.asax.

El WebActivator.PreApplicationStartMethod es un atributo de ensamblaje para cargar código muy temprano en el proceso de compilación. Phil Haack da una buena descripción. Se supone que el atributo se usa para registrar proveedores de compilación y otras cosas que se usan más adelante en el proceso de compilación. Como tal, el compilador ASPNET debe cargar y ejecutar este código para comenzar la compilación de vistas.

Recibí este error particular en el appharbor después de que agregué un código al código de inicio de IoC (StructureMap) que accedió a un recurso (MongoDB). Como este recurso no era accesible para la máquina de compilación appharbor, arrojó todo tipo de errores.

La conclusión es que PreApplicationStartMethod es para previa a la solicitud de arranque en cosas, como la construcción de , no inicializar la aplicación. Si está haciendo cosas de inicialización de aplicaciones, hágalo en Global.asaxApplication_Start. Sé que el paquete predeterminado de StructureMap NuGet para MVC4 usa el atributo en lugar de Global. Puede haber otros paquetes que te lleven a cometer el mismo error.

+0

Muchas gracias, he estado tirando de mi cabello por este problema. –

+0

Esto resolvió el error pero causó una tonelada de problemas con SimpleInjector –

Cuestiones relacionadas