asp.net-mvc - razor c#
Problemas de dependencia de implementación MVC3 (4)
Acabo de intentar implementar una aplicación MVC3 en nuestro entorno de alojamiento IIS7 pero me presentan la siguiente excepción:
No se pudo cargar el tipo ''Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility'' del ensamblado ''Microsoft.Web.Infrastructure, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''. Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.
Detalles de la excepción: System.TypeLoadException: no se pudo cargar el tipo ''Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility'' del ensamblado ''Microsoft.Web.Infrastructure, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''.
¿Alguna sugerencia?
La aplicación no se está implementando bin ya que he instalado páginas web ASP.Net y MVC3 en el servidor web.
Asegúrese de que el archivo raíz web.config en su servidor (ubicado en algún lugar como aquí: C:/Windows/Microsoft.NET/Framework/v4.0.30319/Config/web.config
) tiene la siguiente entrada:
<configuration>
<location allowOverride="true">
<system.web>
<fullTrustAssemblies>
<add
assemblyName="Microsoft.Web.Infrastructure"
version="1.0.0.0"
publicKey="[bunch of letters and numbers]"
/>
Si falta, significa que alguien se metió con tu instalación de .NET 4.
Resulta que después de hacer una limpieza de referencia, eliminó Microsoft.Web.Infrastructure
, pero no del archivo packages.config. Después de intentar agregarlo de nuevo usando la Package Manager Console
, Visual Studio dice que ya está instalado, que es falso porque se eliminó.
Luego eliminé la línea de código en el archivo packages.config
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
y corrió el comando otra vez
PM> Install-Package Microsoft.Web.Infrastructure
Después de esto, ahora funciona bien.
Microsoft.Web.Infrastructure
ahora es un paquete de Nuget, y se puede agregar a su proyecto para habilitar las implementaciones del directorio bin -
Esto se debe a que Microsoft.Web.Infrastructure
no está en su GAC. Necesita agregar esta referencia a su proyecto. Haga clic con el botón derecho en la referencia y vaya a propiedades, luego configure copy to local en true.
Salida (Ignorar el Ninject y la NCU):