web-dev-qa-db-de.com

Datei oder Assembly 'System.Web.Helpers konnte nicht geladen werden, Fehler bei IIS 8

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

35
Manish

Lösung - Verweis auf lokal kopieren

  1. Klicken Sie mit der rechten Maustaste auf den Verweis System.Web.Helpers und wählen Sie Eigenschaften
  2. Ändern Sie Copy Local in true.
  3. Lösung erstellen
25

Klingt so, als wäre MVC nicht auf dem Server installiert.

21
Graham Laight

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.

17
user3638471

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.

13

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

 enter image description here

7
Dave

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.

6
Rudrani Angira

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.

2
Brian Rice

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.

2
Sebastian

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>
1
Xu Z.

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.

1
mab

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.

0
Lester