Je reçois une erreur MvcWebRazorHostFactory lors de l'exécution de mon application, mais ce n'est pas du tout une application MVC. Les packages Web suivants sont installés via nuget:
Microsoft ASP.NET Razor
Microsoft ASP.NET Web API 2.1
Microsoft ASP.NET Web Pages
Mon application est angularjs front end en utilisant des vues rasoirs (.cshtml). Je ne comprends pas pourquoi je continue à avoir cette erreur.
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
Et voici la section rasoir de mon 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>
J'ai résolu ce problème en définissant System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc
Version sur 5.2.0.0
et cela a fonctionné, enfin! Pourquoi 5.2.0.0
? Même version que le projet NuGet Microsoft ASP.NET.
Donc, la ligne dans /Views/Web.Config
devrait être:
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Pour aider les développeurs d'applications Web ASP.NET MVC 5 utilisant Xamarin Studio v5.5.3 sous OSX, la suppression de /Views/Web.config ne fonctionnait pas pour moi et créait d'autres erreurs.
Pour résoudre ce problème, ouvrez /Views/Web.config et modifiez toutes les instances de 5.2.0.0 à 5.2 .2 .0
Plus de détails ici
Plusieurs réponses vont dans la bonne direction, mais je ne savais pas trop à quel endroit de l'interface de Microsoft Visual Studio pour Mac trouver le numéro de version approprié à utiliser pour la partie de la version de l'attribut factoryType
.
Pour le bénéfice d'autres utilisateurs de VS pour Mac, la solution consiste simplement à cliquer avec le bouton droit de la souris sur le package Microsoft.AspNet.Mvc
dans la liste des packages de l'explorateur de solutions.
Dans mon cas, la version du paquet était "5.2.6" après une mise à jour du paquet, alors j'ai défini la partie de la version de l'attribut factoryType
sur Version=5.2.6.0
. Cela a résolu le problème.
Donc, apparemment, un paquet que j'ai reçu de Nuget ajoute un fichier web.config au dossier Vues. Dans ce web.config, il y avait des paramètres pour MvcWebRazorHostFactory. Je pense que cela s'est produit lorsque j'ai ajouté une vue à mon projet à l'aide de la boîte de dialogue.
La solution consiste à supprimer le fichier web.config du dossier Vues.
Modifié la version de MvcWebRazorHostFactory par la même version de System.Web.Mvc, ce qui a résolu mon problème.
Cela m'est arrivé aujourd'hui. Je viens de m'assurer que le numéro de version de web.config dans le dossier views correspond au numéro de version de web.config de la solution.
J'espère que cela t'aides.