it-swarm.com.de

Datei oder Assembly 'System.Web.Mvc' konnte nicht geladen werden

Meine neue ASP.NET MVC-Webanwendung funktioniert auf meiner Entwicklungsarbeitsstation, jedoch nicht auf meinem Webserver ...


Serverfehler in '/' Anwendung.


Konfigurationsfehler

Description: Bei der Verarbeitung einer Konfigurationsdatei, die zur Bearbeitung dieser Anforderung erforderlich ist, ist ein Fehler aufgetreten. Bitte überprüfen Sie die spezifischen Fehlerdetails unten und ändern Sie Ihre Konfigurationsdatei entsprechend.

Parser Error Message: Datei oder Assembly 'System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden.

Quellfehler:

Line 44:         <add Assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add Assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add Assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add Assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add Assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Quelldatei: C:\inetpub\www.example.org\web.config Zeile: 46

Assembly Load Trace: Die folgenden Informationen können hilfreich sein, um festzustellen, warum die Assembly 'System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' nicht geladen werden konnte.

 WRN: Die Protokollierung der Assemblybindung ist deaktiviert. 
 Um die Protokollierung von Assemblybindungsfehlern zu aktivieren, legen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) auf 1 fest. 
 Hinweis: Mit der Protokollierung von Assemblybindungsfehlern sind einige Leistungseinbußen verbunden. 
 Entfernen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog], um diese Funktion zu deaktivieren. 

Versionsinformation: Microsoft .NET Framework Version: 2.0.50727.3053; ASP.NET Version: 2.0.50727.3053


Muss ich die Datei AspNetMVCBeta-setup.msi auf dem Server installieren? Oder gibt es ein anderes Installationsprogramm für Server?

enter image description here

197
Zack Peterson

Ich habe gerade einen Blog-Beitrag geschrieben, der dies anspricht. Sie können ASP.NET MVC auf Ihrem Server installieren. OR Sie können die folgenden Schritte ausführen: hier .


EDIT: (von jcolebrand) Ich bin durch diesen Link gegangen und hatte dann das gleiche Problem wie Victornten , also schlage ich vor, dass Sie auch diese hinzufügen:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor
213
Haacked

Ich bin auf dasselbe Problem gestoßen wie sgriffinusa. Zusätzlich zu den Referenzen schlägt Phils Artikel vor: http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx . Ich fügte hinzu:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

Godaddy Deployment hat perfekt funktioniert. Deaktivieren Sie benutzerdefinierte Fehler, und fügen Sie Verweise hinzu, um die Fehler zu beheben. Das sollte dich in die richtige Richtung führen.

41
Victor Juri

Die Installation von MVC direkt auf Ihrem Webserver ist eine Option, da die Assemblys dann im GAC installiert werden. Sie können die Assemblys auch im Bin-Modus bereitstellen. Dies kann dazu beitragen, dass Ihr Server keinen Zugriff auf Assemblys vor der Veröffentlichung hat, bis eine endgültige Version verfügbar ist.

Phil Haack hat vor ein paar Tagen einen Artikel über die Bereitstellung von MVC zusammen mit Ihrer App veröffentlicht. Eine direkte Installation ist daher nicht erforderlich:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

26
Matt Rudder

Ich bin auf dasselbe Problem gestoßen, als ich versucht habe, meine MVC3 Razor-Webanwendung auf dem gemeinsam genutzten Hosting von GoDaddy bereitzustellen. Es gibt einige zusätzliche DLLs, auf die verwiesen werden muss. Details hier: http://paulmason.biz/?p=108

Grundsätzlich müssen Sie zusätzlich zu den in @ Haackeds Beitrag aufgeführten Verweisen auf die folgenden Verweise hinzufügen und diese so einstellen, dass sie wie beschrieben lokal bereitgestellt werden.

  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor
25
sgriffinusa

Klicken Sie in VS2010 mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer und wählen Sie "Bereitstellbare Abhängigkeiten hinzufügen". Aktivieren Sie dann die Kontrollkästchen für MVC im folgenden Dialogfeld.

Dadurch wird im Projekt ein Ordner "_bin_deployableAssemblies" erstellt, der alle in anderen Antworten genannten DLL-Dateien enthält. Ich glaube, dass diese beim Erstellen eines Bereitstellungspakets in den Ordner bin kopiert werden.

13
warrickh

Einfache Lösung. Klicken Sie in VS2010 mit der rechten Maustaste auf Ihr MVC-Projekt, wählen Sie "Bereitstellbare Abhängigkeiten hinzufügen ...", wählen Sie die gewünschten Optionen aus und klicken Sie auf "OK"

9
Axle

Hatte das gleiche Problem und fügte der ganzen Versammlung hinzu, dass sie sagte, aber immer noch den gleichen Fehler bekam.

es stellt sich heraus, dass Sie "Specific Version" = False machen müssen.

Specific version should be false.

6
Romeo

Wir möchten es hinzufügen, weil wir eine Klassenbibliothek erstellen, die es verwendet.

Für mich ist es hier ...

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies

6
Dave Shinkle

Schnelle und einfache Lösung: Ich hatte dieses Problem mit Microsoft.AspNet.Mvc-Version 5.2.3 und fand nach Durchlaufen all dieser Threads eine einfachste Lösung .

Befolgen Sie einfach die folgenden Schritte:

  1. Öffnen Sie NuGet Package Manager in Visual Studio für Ihr Projekt
  2. Suchen Sie nach Microsoft.AspNet.Mvc
  3. Wenn gefunden, ändern Sie die Aktion in Deinstallieren und deinstallieren
  4. Sobald Sie fertig sind, installieren Sie es erneut und versuchen Sie es jetzt

Dadurch werden automatisch alle Probleme mit Verweisen behoben. Siehe Bild unten:

enter image description here

6
Muhammad Amir

Hanselman hat neben der Haack-Stelle auch eine ähnliche Stelle. BIN Bereitstellen von ASP.NET MVC 3 mit Razor auf einem Windows-Server ohne MVC

Für mich war die Lösung "Copy Local = true" unzureichend, da die Projektreferenzen meiner Website nicht alle fehlenden DLLs enthielten. Wie Scott in seinem Post erwähnt, musste ich auch zusätzliche DLLs aus dem folgenden Ordner in meiner Entwicklungsbox abrufen: C:\Programme (x86)\Microsoft ASP.NET\ASP.NET-Webseiten\v1.0\Assemblies. Die Fehlermeldung teilte mir mit, welche DLL fehlte (System.Web.Infrastructure, System.Web.Razor usw.). Ich fügte jede fehlende DLL nacheinander hinzu, bis sie funktionierte.

3
James Lawruk

Ich habe ein "Update-Package - Microsoft.AspNet.Mvc neu installieren" durchgeführt, um dieses Problem in Visual Studio 2015 zu beheben.

3
Olaj

Wenn Sie NICHT einen Hosting-Anbieter verwenden und Zugriff auf den zu installierenden Server haben ... Dann installieren Sie die MVC 3-Aktualisierungstools, tun Sie dies ... Sie sparen stundenlange Probleme auf einem Windows 2003-Server/IIS6-Computer. Ich habe diese Seite hier kommentiert Nuget.Core.dll Versionsnummer stimmt nicht überein

3
Tom Stickel

Überprüfen Sie auch die Version der Assembly in der Datei web.config in Ihrem Ordner Views und stellen Sie sicher, dass sie übereinstimmt. Ich vergesse manchmal, dass es an dieser Stelle eine zweite web.config gibt.

2
Dave

Ich hatte das gleiche Problem mit einer Reihe von Assembly-Dateien, nachdem ich das Projekt auf eine andere Lösung verschoben hatte.

Für mich hat die Datei web.config Versucht, diese Assembly hinzuzufügen:

<add Assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Dachte, die Referenz im Projekt wies auf die Version 3.0.0.0 (Klicken Sie auf die Referenz und scrollen Sie zum Ende der Eigenschaften). Daher habe ich gerade die Referenzversion in der Datei web.config Geändert.

Ich weiß nicht, ob das nur ein Fehler war. Das Problem beim Hinzufügen aller anderen Referenzen bestand darin, dass die Referenzen in der Konfigurationsdatei angezeigt wurden, im Projekt (im Projektmappen-Explorer) jedoch überhaupt nicht referenziert wurden und die benötigten Dateien nicht mit den übrigen Projektdateien kopiert wurden. wahrscheinlich, weil er nicht "copy local = true" ist

Jetzt konnte ich diese Assemblys in den addierbaren Assemblys nicht finden (indem ich mit der rechten Maustaste auf die Referenz klickte und versuchte, sie aus den Assemblys oder Erweiterungen hinzuzufügen). Stattdessen habe ich eine neue MVC-Lösung erstellt, in der alle benötigten Assemblys und Referenzen hinzugefügt wurden. Sie wurden unter den Referenzen für neue Projekte im Projektmappen-Explorer gefunden und im Eigenschaftenfenster nach ihrem Pfad für die Referenz gesucht.

Dann habe ich einfach die benötigten Bibliotheken in das andere Projekt kopiert und auf sie verwiesen.

2
Mikael Puusaari
2
tugberk

Ein wichtiger Gesichtspunkt ist die Datei web.config. Einige Pakete können Ihre Bindungsumleitungen zerstören, was zu Chaos führt Es gibt keine Bindungsumleitungen, z. B. durch Entfernen des doppelten und falschen Knotens

    <runtime>
        <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>


                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>


                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

durch Entfernen der Zeilen 8 bis 24 wird der Build repariert.

1
PBo

Ich habe "Microsoft ASP.NET Razor" mit "NuGet-Pakete verwalten" hinzugefügt.

Mit Verweise hinzufügen hatte ich aus irgendeinem Grund nur System.Web.Helpers 1.0.0 und 2.0.0 ... aber nicht 3.0.0.

Eine andere Option, die sich für mich bewährt hat, war das Löschen der Verweise auf System.Web.Mvc und System.Web.Http ... und das erneute Hinzufügen der Verweise zu den Paketpositionen in der csproj-Datei (Sie können das Projekt am einfachsten mit bearbeiten) ein Texteditor):

<Reference Include="System.Web.Http">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>

<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
0
Brian Rice

Nachdem ich alles ausprobiert hatte und dies immer noch fehlschlug, war meine Lösung: Ich erinnerte mich, dass ich die MVC-Version in meinem Visual Studio zuletzt aktualisiert hatte und einen Fehler machte, sodass ich das Projekt von einem anderen Visual Studio (einem anderen Computer) aus startete und dann die DLLs hochlud und es funktionierte. Vielleicht hilft es jemandem ...

0
Matan L

Ich verwende Jenkins mit .net-Projekten und hatte Probleme mit MVC 4-Referenzen.

Ich habe mein Problem endlich gelöst, indem ich eine .Net-Referenzsuchmaschinenfunktion basierend auf der Registrierung verwendet habe, die Folgendes verwendet:

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx"

Sie können einen Unterschlüssel erstellen und den Standardschlüssel beispielsweise auf "c:\myreferenceedir" setzen.

Es hat mich mit MVC-Versionen und auch ASP.net-Webseiten gerettet.

Nützlich zum Hinzufügen von Verweisen auf das Dialogfeld "Verweis hinzufügen"

http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-Assembly-in-gac-and-make-it-show-in-add-reference- dialog /

0
Jenzo

Wie bereits erwähnt, fügen Sie diese Referenzen zu visuellen Studios hinzu, wobei Copy Local Auf true gesetzt ist. (Ich musste auch System.Web.Webpages Hinzufügen)

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages
0
roo2