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
Solution - Copier la référence au local
On dirait que MVC n’a pas été installé sur le serveur.
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.
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.
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.
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.
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.
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>
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.
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.