asp.net mvc - nombre - El sitio dejó de funcionar en asp.net System.Web.WebPages.Razor.Configuration.HostSection no se puede convertir en
establecer pagina principal mvc (9)
Abra la ubicación de los dos archivos dll en su sistema copie uno de los dll en la ubicación de su archivo al otro
e intenta ejecutar el proyecto
Tengo un problema como este en el servidor
[A] System.Web.WebPages.Razor.Configuration.HostSection no se puede convertir a [B] System.Web.WebPages.Razor.Configuration.HostSection. El tipo A se origina de ''System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.Net / assembly / GAC_MSIL / System .Web.WebPages.Razor / v4.0_2.0.0.0__31bf3856ad364e35 / System.Web.WebPages.Razor.dll ''. El tipo B se origina de ''System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.Net / assembly / GAC_MSIL / System .Web.WebPages.Razor / v4.0_1.0.0.0__31bf3856ad364e35 / System.Web.WebPages.Razor.dll ''.
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.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection no se puede convertir a [B] System.Web.WebPages.Razor.Configuration.HostSection. El tipo A se origina de ''System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.Net / assembly / GAC_MSIL / System .Web.WebPages.Razor / v4.0_2.0.0.0__31bf3856ad364e35 / System.Web.WebPages.Razor.dll ''. El tipo B se origina de ''System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.Net / assembly / GAC_MSIL / System .Web.WebPages.Razor / v4.0_1.0.0.0__31bf3856ad364e35 / System.Web.WebPages.Razor.dll ''.
Error de fuente:
He instalado MVC 3 en el seridor y en mi computadora. He intentado reemplazarlo con una base de código de 15 días pero existe el mismo problema.
ahora quiero resolverlo. ¿Alguien sabe cómo puedo solucionarlo?
En caso de que la respuesta de Ian no fuera suficiente (y las asambleas correctas, pero el casting sigue siendo incorrecto) es probable que no hayas actualizado las <configSections>
para reflejar el nuevo ensamblado. asegúrese de que la parte de ensamblaje también haga referencia a la versión 3.0 de la biblioteca System.Web.WebPages.Razor
. p.ej
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
</sectionGroup>
(Tenga en cuenta que todas las version=3.0.0
referencia version=3.0.0
ahora)
En la raíz Web.config, asegúrese de que assemblyBinding contiene la versión adecuada para el ensamblado "System.Web.WebPages.Razor" y "System.Web.Mvc". Verifique su existencia real, así como mi etiqueta de ensamblado "System.Web.WebPages.Razor" que faltaba y que causaba el error. Tenía mis versiones de montaje configuradas en 3.0 y 5.0 respectivamente en el momento de escribir estas líneas con actualizaciones NuGet completas. El código debería verse más abajo. El publicKeyToken se mantendrá igual entre las versiones. ¡Aclamaciones!
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!--some more bidings-->
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<!--some more bidings-->
</assemblyBinding>
Encontré un problema y una solución.
1 Dirijo mi código a 4.0 y luego cargo el código y funcionó. Antes también actualizo mi código a asp.net MVC 4.
ahora es trabajo :)
Este problema es muy común cuando se está desarrollando para MVC 4 y luego se instala repentinamente un paquete que está disponible en una versión más nueva, por lo que rompe toda la aplicación.
La única solución a este problema es actualizar toda su aplicación a una versión más nueva o instalar el paquete anterior compatible con su aplicación
La solución de Ian funcionó en un proyecto, pero para otros necesito la información más completa en Cómo actualizar a MVC 5 y Web API 2
Mi caso estaba actualizando de mvc4 a mvc5.
Me aseguré de que mis referencias estuvieran sincronizadas (con una aplicación mvc5 recién creada), actualicé el archivo web.config en consecuencia y aún así no funcionó. Finalmente funcionó cuando cambié mi archivo web.config ( INSIDE THE VIEWS directory ) desde:
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
A esto:
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
RECUERDE: deje de iis (expreso o nativo), limpie la solución, compile y ejecute.
Otra forma de solucionar esto, sin tener que actualizar referencias, es esto
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Pages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="1.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Problema:
[A] System.Web.WebPages.Razor.Configuration.HostSection no se puede convertir a [B] System.Web.WebPages.Razor.Configuration.HostSection. El tipo A se origina de ''System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.Net / assembly / GAC_MSIL / System .Web.WebPages.Razor / v4.0_2.0.0.0__31bf3856ad364e35 / System.Web.WebPages.Razor.dll ''. El tipo B se origina en ''System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' en el contexto ''Default'' en la ubicación ''C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / Archivos temporales ASP.NET / rbs.ceds.todomvcdemo / 73d0b7c7 / 46e3986d / assembly / dl3 / 21020800 / 101279fc_da94cf01 / System.Web.WebPages.Razor.dll ''.
Identificación:
El error es con el archivo de configuración, es decir, web.config de su proyecto.
Aquí encontrará que la versión de Razor está configurada en 2.0.0.0 donde, como en su proyecto, la versión 2.0.0.0 no está disponible.
Solución:
Es simple, simplemente cambie la versión de 2.0.0.0 a 3.0.0.0 y hará la magia.
type = "System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version = 3.0.0.0 type =" System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor , Versión = 3.0.0.0
No necesitas redireccionar o eso complicará las cosas.