Ich habe eine MVC4-Webanwendung, die unter Visual Studio 2012 einwandfrei funktioniert und den local IIS Express Server verwendet. Wenn ich die Anwendung auf einem IIS 8-Webserver unter Windows 2012 veröffentliche, wird die erste Anmeldeseite korrekt angezeigt. Beim Remote-Debugging sehe ich jedoch Folgendes: Wenn ich die Anmeldeinformationen mit der folgenden Zeile prüfe:
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
Ich erhalte den in der folgenden Abbildung gezeigten Fehler: System.Web.Helpers-Fehler http://www.ismlab.usf.edu/capture.jpg
Lösung - Verweis auf lokal kopieren
Klingt so, als wäre MVC nicht auf dem Server installiert.
Der System.Web.Helpers.dll
ist im offiziellen Nuget-Paket Microsoft.AspNet.WebPages enthalten.
Installieren Sie das und die Verweise sollten korrigiert werden, und die Datei sollte in Ihren bin-Ordner kopiert werden.
Ich konnte dieses Problem beheben, indem ich das Microsoft Web Platform Installer herunterlade, nach MVC suche und das Paket "ASP.NET MVC3 (Visual Studio 2010) Veröffentlicht 4/11/2011" installiere. Schließen Sie alle Visual Studio-Instanzen vor der Installation.
Stellen Sie sicher, dass nach der korrekten Version der Datei gesucht wird. Meine waren falsch, die Datei web.config wies auf spätere Versionen als auf das Projekt hin.
In den Eigenschaften habe ich festgestellt, dass die Version 2.0.0.0 war, also habe ich diese Version in der Datei web.config erstellt
Ich fügte nur die vorhandenen Antworten hinzu, da selbst ich auf den gleichen Fehler stieß und die Referenz in Baugruppen nicht finden konnte. Ich werde nur teilen, was mir geholfen hat:
Öffnen Sie den Paket-Manager über Tools-> NuGet Package Manager-> Package Manager Console und geben Sie Folgendes ein:
PM> Install-Package Microsoft-web-helpers
Danach erscheinen System.Web.Helpers unter References-> Assemblies. Von dort kann die Eigenschaft 'Copy local' auf True geändert werden.
Ich habe "Microsoft ASP.NET Razor" mit Manage NuGet Packages hinzugefügt.
Aus irgendeinem Grund hatte ich mit Add References nur System.Web.Helpers 1.0.0 und 2.0.0 ... aber nicht 3.0.0.
Ich verwende VS 2015Preview und könnte das Problem durch Installieren der neuesten Version von MVC über NuGet beheben.
Nur für den Fall, dass noch jemand auf diesen einen stößt.
möglicherweise stimmt etwas mit Ihrer Web.config -Datei nicht. Öffnen Sie die Datei und suchen Sie das <runtime></runtime>
-Tag . Ändern Sie die Version von MVC . Beispiel: 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>
Ich hatte das gleiche Problem bei der Arbeit mit dem WCF-Dienst in IIS 8. Schauen Sie sich diese Lösung an Bereitstellen von ASP.NET , es hat für mich funktioniert.
Nachdem Sie die richtige Version von MVC hinzugefügt haben, wird der Verweis auf Microsoft Web Helper hinzugefügt, jedoch nicht von System.Web.Helper. Fügen Sie dies manuell zu Ihren Referenzen hinzu.