web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'System.Web.Helpers, erreur sur IIS 8

J'ai une application Web MVC4 qui fonctionne correctement sous Visual Studio 2012, à l'aide du serveur Express IIS local. Lorsque je publie l'application sur un serveur Web IIS 8 sous Windows 2012, la page de connexion initiale s'affiche correctement. Cependant, en utilisant le débogage distant, je le vois lorsque je vérifie les informations d'identification à l'aide de la ligne suivante:

if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))

L’erreur indiquée dans la figure ci-dessous apparaît: Erreur System.Web.Helpers http://www.ismlab.usf.edu/capture.jpg

35
Manish

Solution - Copier la référence au local

  1. Faites un clic droit sur la référence System.Web.Helpers et sélectionnez Propriétés.
  2. Changez Copy Local en true.
  3. Solution de construction
25
Arvind Vishwakarma

On dirait que MVC n’a pas été installé sur le serveur.

21
Graham Laight

Le System.Web.Helpers.dll est inclus dans le paquet Nuget officiel Microsoft.AspNet.WebPages .

Installez cela et les références doivent être corrigées et le fichier doit être copié dans votre dossier bin.

17
user3638471

J'ai pu résoudre ce problème en téléchargeant le Microsoft Web Platform Installer , en recherchant MVC et en installant le package "ASP.NET MVC3 (Visual Studio 2010) Released 4/11/2011". Fermez toutes les instances de Visual Studio avant l’installation.

13
Geovani Martinez

Assurez-vous qu'il recherche la version correcte du fichier. Les miens étaient incorrects, le fichier web.config pointait vers des versions plus récentes que celles du projet. 

Dans les propriétés, j'ai noté que la version était 2.0.0.0 et je l'ai donc faite dans le fichier web.config

 enter image description here

7
Dave

En ajoutant simplement les réponses existantes, j’ai eu la même erreur et je n’ai pas trouvé la référence dans les assemblées. Je vais juste partager ce qui m'a aidé:

Ouvrez le gestionnaire de paquets dans Outils-> NuGet Package Manager-> Console du gestionnaire de paquets et tapez:

PM> Install-Package Microsoft-web-helpers

Après cela, System.Web.Helpers apparaîtra sous Références-> Assemblées. À partir de là, la propriété 'Copier local' peut être remplacée par True.

6
Rudrani Angira

J'ai ajouté "Microsoft ASP.NET Razor" à l'aide de Manage NuGet Packages.

Avec Ajouter des références, pour une raison quelconque, je n'avais que System.Web.Helpers 1.0.0 et 2.0.0 ... mais pas 3.0.0.

2
Brian Rice

J'utilise VS 2015Preview et je peux résoudre le problème en installant la dernière version de MVC via NuGet.

Juste au cas où quelqu'un tomberait encore sur celui-ci.

2
Sebastian

peut-être que quelque chose ne va pas avec votre Web.config fichier. Ouvrez le fichier et recherchez la balise <runtime></runtime> . Modifiez la version de MVC . Par exemple, MVC 3 

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

Je rencontrais le même problème avec le service WCF dans IIS 8. Examinez cette solution Déploiement d’ASP.NET , cela a fonctionné pour moi.

1
mab

Après avoir ajouté la version correcte de MVC, la référence à Microsoft Web Helper est ajoutée, mais pas à System.Web.Helper. Ajoutez ceci manuellement à vos références.

0
Lester