web-dev-qa-db-fra.com

Erreur de Razor Host Factory

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>

28
Ryan Langton

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" />
33
Daniel Kmak

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

15
Smyrnian

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.

 version number display

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.

4
Otto G

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.

3
Ryan Langton

Modifié la version de MvcWebRazorHostFactory par la même version de System.Web.Mvc, ce qui a résolu mon problème.

2
jmwhicke

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.

0
user3743493