tag route page net for data asp all asp.net asp.net-mvc razor asp.net-webpages

asp.net - route - Error de fábrica de host de la navaja



select asp-for asp-items (6)

Recibo un error MvcWebRazorHostFactory al intentar ejecutar mi aplicación, pero no es una aplicación MVC en absoluto. Tengo los siguientes paquetes web instalados a través de nuget:

Microsoft ASP.NET Razor Microsoft ASP.NET Web API 2.1 Microsoft ASP.NET Web Pages

Mi aplicación es angularjs front end usando vistas de afeitar (.cshtml). No entiendo por qué sigo recibiendo este error.

An exception of type ''System.InvalidOperationException'' occurred in System.Web.WebPages.Razor.dll but was not handled in user code Additional information: Could not locate Razor Host Factory type: System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35

Y aquí está la sección de maquinillas de afeitar en mi web.config:

<system.web.webPages.razor> <host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.WebPages.WebPage"> <namespaces> <add namespace="System.Web.Configuration" /> <add namespace="System.Web.Optimization" /> <add namespace="System.Web.Routing" /> </namespaces> </pages>


Aparentemente, un paquete que obtuve de nuget agrega un web.config a la carpeta de Vistas. En este web.config había configuraciones para el MvcWebRazorHostFactory. Creo que esto ocurrió cuando agregué una Vista a mi proyecto usando el cuadro de diálogo.

La solución es eliminar el web.config de la carpeta Vistas.


Cambié la versión de MvcWebRazorHostFactory a la misma versión de System.Web.Mvc que resolvió mi problema.


Comencé a recibir este error en mis páginas .cshtml de Razor en un proyecto MVC después de algunas actualizaciones / administración de paquetes de NuGet.

No quería eliminar el archivo Web.config completamente de la carpeta de Views porque lo había personalizado con algunos elementos <add namespace="..." /> . Pero me di cuenta de que la Versión = ... en <host factoryType="..." /> no coincidía con mi versión de System.Web.Mvc (versión verificada en Object Browser).

Al modificar este número de versión para que coincida con el de mi ensamblado System.Web.Mvc y al reiniciar Visual Studio , solucioné el problema (como lo sugirió Daniel )


Para el beneficio de que cualquiera desarrolle aplicaciones web ASP.NET MVC 5 con Xamarin Studio v5.5.3 en OSX, la eliminación de /Views/Web.config no funcionó para mí y creó otros errores.

Para solucionarlo, abra /Views/Web.config y cambie todas las instancias de 5.2.0.0 a 5.2. 2 .0

Más detalles here


Varias de las respuestas apuntan en la dirección correcta, pero no estaba seguro de en qué lugar de la interfaz de Microsoft Visual Studio para Mac podía encontrar el número de versión adecuado para usar con la parte de la factoryType atributo factoryType .

Para el beneficio de otros usuarios de VS para Mac, la respuesta es simplemente hacer clic derecho en el paquete Microsoft.AspNet.Mvc en la lista de Paquetes en el explorador de soluciones.

En mi caso, la versión del paquete era "5.2.6" después de una actualización del paquete, así que configuré la parte de la factoryType atributo factoryType en la Version=5.2.6.0 . Esto solucionó el problema.


5.2.0.0 este problema configurando System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc Version a 5.2.0.0 y ¡funcionó, finalmente! ¿Por qué 5.2.0.0 ? La misma versión que el proyecto NuGet Microsoft ASP.NET.

Entonces, la línea en /Views/Web.Config debería ser:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />