asp.net asp.net-mvc asp.net-mvc-4 assemblies elmah.mvc

asp.net - No se pudo cargar el archivo o ensamblado ''System.Web.Mvc, Versión=3.0.0.0, problema Elmah.MVC



asp.net-mvc asp.net-mvc-4 (5)

Se están utilizando algunos procedimientos para solucionar el problema y si la redirección de enlace en web.config no resuelve el problema, puede intentar los siguientes pasos para solucionarlo:

1) En el árbol del Explorador de soluciones de Visual Studio, haga clic con el botón derecho en Referencias debajo de su proyecto web y seleccione Administrar paquetes NuGet.

2) Vaya a la pestaña Explorar y seleccione nuget.org como origen del paquete.

3) Busque e instale los siguientes paquetes: Ninject , Ninject.Web.Common y Ninject.MVC5 .

También es mejor actualizar los paquetes, particularmente Microsoft ASP.NET MVC en la pestaña Actualizaciones de Manage NuGet Packages.

Espero que esto ayude...

Localmente: mi aplicación MVC 4, asp.net, c # funciona bien en IIS 8 / Windows 8.

Cuando se implementa en Windows Server 2008, aparece este error:

Could not load file or assembly ''System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The located assembly''s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

y

[FileLoadException: Could not load file or assembly ''System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The located assembly''s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)] Elmah.Mvc.Bootstrap.Initialize() +0 [InvalidOperationException: The pre-application start initialization method Initialize on type Elmah.Mvc.Bootstrap threw an exception with the following error message: Could not load file or assembly ''System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The located assembly''s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040).] System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +12881963 System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +12881672 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +240 System.Web.Compilation.BuildManager.ExecutePreAppStart() +152 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151 [HttpException (0x80004005): The pre-application start initialization method Initialize on type Elmah.Mvc.Bootstrap threw an exception with the following error message: Could not load file or assembly ''System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The located assembly''s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040).] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12881108 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722297

Esto sucede si selecciono ''Solo archivos necesarios para ejecutar esta aplicación'' desde el menú desplegable ''Elementos para implementar'' en las propiedades del proyecto / paquete / publicación web.

Si selecciono ''todos los archivos en este proyecto'', funciona bien.

Supongo que Elmah depende de una versión anterior de MVC o algo así. ¿Cómo puedo solucionar esto sin tener que subir todos los archivos?

¿Cuál es la mejor manera de resolver problemas como este?

Gracias.


¿Estás seguro de que estás utilizando ASP.NET MVC (controladores de vistas, etc.)? ¿o su aplicación web utiliza ASP.NET WebAPI exclusivamente? Si es así, solo debe instalar el paquete ElMAH NuGet y no Elmah.MVC.

Para las aplicaciones ASP.NET WebAPI únicas, recomendaría el paquete Emah.Contrib.WebAPI . Este paquete también se puede instalar a través de NuGet.


Agregue el código siguiente en web.config:

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" /> </dependentAssembly> </assemblyBinding>


En la página de error tuve esto:

LOG: Redirección detectada en el archivo de configuración de la aplicación: 5.1.0.0 fue redirigido a 5.2.3.0.

¡Así que tuve que cambiar esta línea en el web.config a la versión 5.1.0.0 y funcionó!

<dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.1.0.0" /> <!--<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> Older line --> </dependentAssembly>

Creo que esto se debe a un problema de versión cuando descargué el código de TFS

Espero que esto ayude


Tuve este mismo problema usando MVC4 con Ninject para .Net 4.5

Para solucionarlo, tuve que agregar una redirección de enlace a mi archivo Web.config: (al final del archivo, justo antes de la etiqueta </configuration> )

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>

Esto obliga al servidor web a utilizar System.Web.Mvc 4.0.0.0 lugar de una versión anterior.