Fehler: «Typ MvcApplication konnte nicht geladen werden»

240

Ich bekomme den Fehler

Typ MvcApplication konnte nicht geladen werden

wenn ich versuche, meine Website zu betreiben.

Wie kann ich das korrigieren?

Gil
quelle
35
Ich habe diesen Fehler eines Tages zufällig auf unserem Build-Server erhalten. Durch manuelles Wiederherstellen wurde das Problem behoben.
Zack
1
Der
Ausgabepfad
8
Löschen Sie die Datei global.asax und fügen Sie eine neue hinzu, und alles wird gut.
DotNetGeek
4
Es stellt sich heraus, dass das neue Projekt in der aktiven Konfiguration für den Build nicht ausgewählt wurde.
JGeerWM
4
Wenn Sie das Projekt kürzlich hinzugefügt oder die Veröffentlichungskonfiguration kürzlich geändert haben (dh von AnyCPU auf x64 umgestellt haben), wird das Projekt möglicherweise nicht erstellt, wenn Sie es ausführen. Gehen Sie zu BUILD-> CONFIGURATION MANAGER und aktivieren Sie das Kontrollkästchen in der Build-Spalte. Ich hatte gerade dieses Problem. Sie werden auch feststellen, dass Ihre Haltepunkte beim Ausführen der Anwendung klare Kreise sind. Ich denke, dies ist ein Ergebnis des Standard-Builds für .net 4.5.1 auf der Prozessorarchitektur, der 32-Bit bevorzugt. Nur ein Problem, wenn Sie x64
David Bridge

Antworten:

115

So dumm es auch klingen mag, habe alles versucht und es hat nicht funktioniert und schließlich VS2012 neu gestartet, um zu sehen, dass es wieder funktioniert.

Gurrawar
quelle
1
LMFAO, hat auch für mich gearbeitet, nachdem ich alles hier erwähnte ausprobiert habe und nicht funktioniert hat! Danke und +1!
Yustme
Gleiches Problem hier. Der Fehler trat nach einer Zusammenführung auf und wurde erst nach einem Neustart von VS2012 behoben.
StuartQ
1
Für mich war der Port möglicherweise von einer zweiten Instanz von Visual Studio verwendet worden, für die das Projekt nicht kompiliert wurde.
Clay Lenhart
Hat auch für mich gearbeitet. Was für ein Müll.
PAWAN RAJ Shakya
5 Jahre später VS2017 und das ist immer noch die Lösung. : /
Sagiv bg
105

-Für mich bestand die Lösung darin, den Ausgabepfad auf der Registerkarte "Erstellen" zu ändern. Ich habe den Ausgabepfad auf geändert bin\und der Fehler ist verschwunden.

- Eine weitere Lösung könnte sein, dass Sie das falsche Startprojekt eingestellt haben.

Bob neu
quelle
8
Dies war auch unser Problem. Es war zuvor auf so etwas wie Debug \ x86 \ bin
t3rse
4
HA! Dies ist das zweite Mal in zwei Jahren, dass ich mit diesem Problem in diesem Artikel war. Das erste Mal war es die beste Antwort, das zweite Mal war es diese Antwort.
Ben Lesh
1
Vielen Dank! Das hat mich auch gebissen. Ich hatte die Plattform geändert, um einige Warnungen zu löschen, und der Ausgabepfad wurde geändert, ohne dass ich es wusste.
Camainc
6
Dies war die richtige Antwort für mich ... Irgendeine Idee, warum sich Visual Stupido so verhält?
Andreapier
1
Ja, das war es. Wenn Sie zu "bin" wechseln, funktioniert alles wie erwartet. @andreapier: Ja, auch VS2012 scheint sich so dumm zu verhalten. Jemand repariert es so schnell wie möglich! :)
jetzt wer nicht genannt werden darf.
82

Ich bekam den gleichen Fehler und trotz allem, was hier und anderswo erwähnt wurde, funktionierte nichts. Es stellte sich heraus, dass ich den Quellcode von global.asax.cs aus einer früheren Version des Projekts kopiert hatte, die einen anderen Namen hatte. Das namespace Testhätte also sein sollen namespace Test.WebUI. Ein dummer Fehler natürlich und es ist mir ein bisschen peinlich, das zu schreiben! Aber in der Hoffnung zu schreiben, dass ein ähnlicher Fehler von irgendjemand anderem dazu führen könnte, dass er auch diesen trivialen Aspekt überprüft.

Vipul
quelle
Danke, Vipul. Ich habe gerade das Gleiche getan und dachte, ich hätte dadurch viel Arbeit verloren. Nur das Ändern des Namespace-Namens hat meinen Speck gerettet
xiecs
2
Ich habe einfach das Gleiche getan. Ich habe die Datei Global.asax in einem Texteditor geöffnet und das Namespace-Problem behoben. Vielen Dank
Kayvan Karim
6
Ich habe einfach das Gleiche getan. Nur um es für andere zu erläutern: Ursprünglich hatte ich ein Testprojekt namens "MvcApplication1", das automatisch erstellt wurde. Ich habe dann den Namespace "MvcApplication" global durch "MyTest" ersetzt. Im Global.asax im Editor musste ich dann zu Inherits = "MyTest.MvcApplication"
PabloInNZ
Wenn es einen Weg gäbe, Gold zu geben, würde ich
Shanabus
53

Erstellen Sie einfach ein Handbuch, das auf Ihrer Lösung aufbaut.

Wenn Sie lokalen IIS verwenden, löschen Sie die Website-Registrierung im IIS-Manager und erstellen Sie sie manuell neu.

Peter Morris
quelle
Dies war ein Gewinner für mich, ich hatte die Site aus dem Repo entfernt und iis eingerichtet, aber nie einen Build in IIS gemacht
Anthony Main
31

[Auszug aus Frage]

Wenn die folgende Fehlermeldung angezeigt wird: "Typ MvcApplication konnte nicht geladen werden", überprüfen Sie den Ausgabepfad Ihres Projekts und stellen Sie sicher, dass er auf 'bin \' gesetzt ist. Das Problem ist, dass der AspNetCompiler die Dateien nicht finden kann, wenn sie sich nicht am Standardspeicherort befinden.

Ein weiterer Nebeneffekt beim Ändern des Ausgabeordners besteht darin, dass Sie Ihren Code nicht debuggen können und eine Meldung angezeigt wird, dass die Assembly-Informationen nicht gefunden werden können.

StingyJack
quelle
1
Dies scheint etwas seltsam, wenn es normalerweise zwischen den verschiedenen Build-Konfigurationen getrennt ist.
nicodemus13
Standardmäßig ist es getrennt, aber viele Leute ändern diese in einen einzelnen Ordner, sodass sich Release und Debug für ein anderes Projekt, das auf die Ausgabe verweist (Installationsprogramme usw.), am selben Speicherort befinden.
StingyJack
Ich frage mich, ob dieses Problem IIS Express eigen ist. Der Grund, warum ich es herausgefunden habe, ist, dass es nur über einen unserer neuen Starter geschraubt wurde: Ich hatte binzu bin\Debugund gewechselt , bin\Releaseaber die alten Dateien befanden sich immer noch in meinem binOrdner, sodass ich keine Probleme gesehen hatte. Wenn Sie eine saubere Prüfung durchführen und diese Dateien erstellen, sind sie natürlich nicht für Sie vorhanden, sodass sie in die Luft jagen.
Bart Read
15

Ich hatte das gleiche Problem und löste es mit den folgenden Schritten

  1. Gehen Sie zu den Projekteigenschaften
  2. Setzen Sie auf der Registerkarte "Erstellen" den Ausgabepfad auf "bin \".
A_B
quelle
1
Vielen Dank dafür, es hat ein Problem behoben, das ich mit nicht gesetzten Haltepunkten hatte!
Chris
Das hat bei mir funktioniert. Ich habe es selbst entdeckt, aber trotzdem danke.
Alexandre
Heiliger Strohsack! Das spart einen Tag.
Ske
14

Ahh das war nervig.

Ich habe diesen Fehler nach einem Stromausfall erhalten und bin zu meinem Projekt zurückgekehrt.

Ich habe versucht, VS neu zu starten. Ich habe versucht, den Ausgabepfad auf \ bin zu setzen. Ich habe meine Namensräume überprüft.

Aber was für mich funktioniert hat, war die Lösung neu zu erstellen.

Lösung neu erstellen !!!

Pomster
quelle
13

Meine Lösung: Weil ich das Problem geschaffen habe! Ich hatte den Namespace in Global.asax.cs geändert

Sie müssen auch den Attributwert Inherits in Global.asax ändern.

mkaj
quelle
3
Ich hatte auch dieses Problem. Ich wünschte, Visual Studio würde die Namespaces in den ererbten Attributen im Markup sowie die Klassen umgestalten.
csharpforevermore
Hier gilt das gleiche. Stellen Sie beim Umbenennen von Namespaces sicher, dass Sie Shift-Alt-F10 verwenden, oder klicken Sie mit der rechten Maustaste, um sie umzubenennen. Alle Instanzen werden für Sie aktualisiert.
Rob
Dies funktionierte für mich, aber es war schwierig zu finden, wo die Lösung implementiert werden sollte. Ich habe "Alle suchen" ausgeführt, um auf die Datei "Global.asax" zuzugreifen. Wenn Sie im Visual Studio-Editor auf "Global.asax" doppelklicken, wird die Datei "Global.asax.cs" angezeigt, die eigentlich der Code hinter der ASAS-Datei ist. Beachten Sie die Erweiterung .cs. Also: STRG-F und suchen Sie nach Global.asax (ohne .cs) und ändern Sie die Vererbung entsprechend Ihrem Namespace.
GerardV
9

Überprüfen Sie den Code hinter den Informationen in global.asax. Sie sollten korrekt auf die Klasse in ihrem Code dahinter verweisen.

Beispiel global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

Beispielcode dahinter:

   namespace MyApplicationNamespace
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start( )
            {
                AreaRegistration.RegisterAllAreas( );
                FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
                RouteConfig.RegisterRoutes( RouteTable.Routes );
                BundleConfig.RegisterBundles( BundleTable.Bundles );
            }
        }
    }
Farshid Saberi
quelle
7
  1. Klicken Sie mit der rechten Maustaste auf das Projekt in der fehlgeschlagenen Lösung.
  2. Projekt entladen
  3. Projekt neu laden
  4. Projekt erstellen
  5. Lösung neu erstellen
JoshYates1980
quelle
5

Dies kann auch während der Ausführung des Projekts in Visual Studio passieren, wenn Ihr IIS Express ein altes / anderes Projekt mit derselben Portzuweisung hostet / hostet.

Um dies zu beheben, können Sie die Portzuweisung für dieses Projekt ändern oder IIS Express schließen.

StingyJack
quelle
5

Wenn Sie in IIS Express hosten und Ihr Projekt an zwei verschiedenen Orten öffnen, wird dieser Fehler möglicherweise angezeigt.

Die Lösung besteht darin, zu Project/Properties/Web/Serversklicken Create Virtual Directory.

Steve Dunn
quelle
4

Die Lösung für mich bestand darin, mit der rechten Maustaste auf das Mvc-Projekt zu klicken, Eigenschaften auszuwählen und auf Virtuelles Verzeichnis erstellen zu klicken.

In einem Meldungsfeld wurde angezeigt, dass das Projekt dem falschen Ordner zugeordnet war (es zeigte den Ordner für ein anderes TFS-Projekt an . Es gab die Möglichkeit, es wieder dem richtigen Ordner zuzuordnen.

Will Newton
quelle
1
Vielen Dank für den Tipp, der Grund für mich war, dass ich kürzlich tfs verlegt habe. Ich musste den Lösungsordner entfernen und erneut zuordnen, damit die App funktioniert!
Adhie
4

Ich hatte bereits bin/in meinem Build-Tab. Ich habe global.asax von einer anderen Kopie des Projekts erhalten, aber das hat nicht geklappt.

Die Lösung, die schließlich für mich funktionierte, bestand darin, den bin/Ordner zu entfernen und einen neuen leeren Ordner mit demselben Namen zu erstellen.

zaydev
quelle
1
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren .
JLRishe
@brasofilo Ich hätte den falschen Anruf tätigen können, aber angesichts des schwerwiegenden Mangels an Informationen in der ursprünglichen Frage ist es sehr wahrscheinlich, dass dies nicht die Lösung für das OP-Problem ist, und diese Antwort ist kurz genug, um als Kommentar hinzugefügt zu werden. Auf der anderen Seite wurde die ursprüngliche Frage vor langer Zeit gestellt und es gibt hier eine Menge Antworten auf die Frage "Das hat bei mir funktioniert", also ist es ein harter Anruf. Diese Frage und ihre Antworten müssen möglicherweise bereinigt werden.
JLRishe
@ JLRishe, na ja, es ist ein Durcheinander von Fragen und Antworten. Diese Antwort ist möglicherweise sogar ein Duplikat der am zweithäufigsten bewerteten, aber ich bin mir nicht sicher. Ich werde das Q markieren und nach einer Sperre von mindestens 10 Rep fragen.
Brasofilo
4

Ich weiß, dass es dafür bereits viele Lösungen gibt, aber ich dachte, ich werde nur erwähnen, was es für mich gelöst hat.

Meine Konfiguration wurde auf Debug eingestellt. Das Ändern auf Release hat den Trick für mich getan.

Amanda
quelle
2
Es wurde in "Release" geändert und es hat funktioniert ... es wurde wieder in "Debug" geändert und es hat weiter funktioniert ... danke.
Paul Zahra
3

Ich habe diesen Fehler erhalten, weil ich das Projekt trotz einiger Fehler bei der Kompilierung ausgeführt habe. Das habe ich nicht bemerkt.

Gautam Jain
quelle
Ich habe es nicht bemerkt, weil die Fehlerliste "Piep-Piep" besagt, dass es GLÜCKLICH war !!!! Danke dir.
CindyH
3

Löschen Sie den Inhalt des Bin-Ordners der Site (verwenden Sie dazu den Datei-Explorer). Wiederaufbauen.

Malcolm Swaine
quelle
3

Ich bin darauf hereingefallen. Ich habe alle möglichen Lösungen gelesen und getestet, die zuvor gegeben wurden. Überprüfen des Erstellungspfads, Erstellen, Neuerstellen, Bereinigen, Neustarten von IIS und VS2015, erneutes Installieren aller Nuget-Pakete, einzelnes Kompilieren usw.

Ich erinnerte mich plötzlich daran, dass VS einige temporäre ASP-Dateien in Systemordnern aufbewahrt ... Ich denke, ich sollte es versuchen, schließlich könnte das nicht schlimmer werden. Also habe ich geleert:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Und alles funktioniert wieder ... Seltsam, dass dieses Problem so unterschiedliche Lösungsmöglichkeiten hat ...

Junta
quelle
3

Ich habe das in den letzten zehn Jahren oft gesehen und hatte es einfach wieder. Es gibt viele Probleme, die zum gleichen Fehler führen.

Eine Ursache ist das Umbenennen von Dateien. Wenn Sie mit CSHTM-Dateien arbeiten, überprüfen Sie alle Namespaces in diesen Dateien und in der Datei Views \ web.config. Benennen Sie bei Webformularen Default.aspx um (verwandte CS- und Designer-Dateien werden automatisch umbenannt). Das Codebehind ändert sich, die Inherits-Zeile im Markup jedoch nicht. Ändern Sie es manuell. Überprüfen Sie die Designerseite. Manchmal (VS2005-8?) Spiegelt die Designer-Seite keine Änderung des Namespace wider. Habe das 2010+ nicht gesehen.

Ein weiteres Problem besteht darin, dass alles in VS oder auf Ihrem lokalen PC funktioniert, jedoch nicht bei der Bereitstellung. Dies kann daran liegen, dass die Bereitstellungsumgebung nicht dieselbe Struktur aufweist. Der Fehler tritt beispielsweise auf, wenn Sie Ihren Code in einem virtuellen Verzeichnis unter einem Anwendungsordner ablegen. Er tritt jedoch nicht auf, wenn Sie einen neuen Anwendungsordner erstellen und alle Ihre Dateien dort ablegen. Ich verstehe diesen nicht, da ich den neuen untergeordneten / virtuellen Ordner mit denselben Berechtigungen eingerichtet habe (oder glaube ich) und (ich glaube) der Anwendungspool für alle in einem bestimmten Anwendungsordner gleich funktionieren sollte.

In meinem Fall hatte ich auch einen bin-Ordner mit Assemblys, die von anderen Assemblys auf dem IIS-Server aktualisiert wurden. Auch hier führte das Sicherstellen, dass diese in einem separaten Anwendungsordner ausgeführt werden, zum Erfolg.

HTH

TonyG
quelle
2

Ich bekomme dieses Problem jedes Mal, wenn ich eine Datei speichere, die dynamisch kompiliert wird (ascx, aspx usw.). Ich warte ungefähr 8-10 Sekunden, dann geht es weg. Es ist höllisch nervig.

Ich dachte, es sei vielleicht ein IIS Express-Problem, also habe ich es auf dem eingebauten Entwicklungsserver versucht und erhalte es nach dem Speichern einer Datei immer noch. Ich verwende eine MVC-App, ich verwende auch T4MVC, vielleicht ist das ein Faktor ...

Sam
quelle
2

Ich hatte diesen frustrierenden Fehler in der Entwicklungsumgebung in Visual Studio und stellte fest, dass der Grund ziemlich dumm war. Kurz gesagt, wenn Sie mehr als ein Webprojekt / eine Website in Lösung haben: Stellen Sie sicher, dass der Port, auf den Sie zugreifen möchten, mit dem in Projekteigenschaften-> Web konfigurierten Port übereinstimmt

In meinem Fall wurde der Fehler verursacht, weil ich einen anderen Port für den Zugriff auf die Website (im Browser) verwendet habe, während dem Projekt in Lösung ein anderer Port zugewiesen wurde. Um ein bisschen mehr zu erklären, hatte ich zwei Website-Projekte in meiner Lösung Website1 (zugewiesener Port 8001 in ISS von Visual-Studio) und Website2 (zugewiesener Port 8101 in ISS von Visual-Studio). Obwohl ich Website1 erstellt habe, habe ich versucht, mit locahost: 8101 auf die Website zuzugreifen.

Nachdem ich das Problem endlich erkannt habe, sehe ich, dass der Kommentar von @ StingyJack auch das ähnliche Problem anspricht.

mmmMAC
quelle
2

Stellen Sie sicher, dass der Namespace in Ihrer Datei global.asax.cs mit dem Namespace Ihrer Webanwendung übereinstimmt

IndieTech-Lösungen
quelle
2

Ich hatte diesen Fehler erneut und keiner der oben genannten hat bei mir funktioniert. Ich musste den folgenden Knoten in der .csproj-Datei entfernen : <VisualStudio>....</VisualStudio>. VS neu geladen und es hat funktioniert.

Zu Ihrer Information, VS konnte den Knoten neu erstellen und dann habe ich die Website in IIS (über VS) neu erstellt und es hat perfekt funktioniert.

Hoffentlich hilft das jemandem.

Rob
quelle
1

Stellen Sie sicher, dass Sie das MVC-Projekt nicht wie Datei-> Website öffnen öffnen müssen . Verwenden Sie stattdessen Datei-> Projekt öffnen .

Awk
quelle
1

Was für mich funktioniert hat, war ein Neustart von Visual Studio.

Ich habe versucht, manuell neu zu erstellen, eine Bereinigung und Wiederherstellung durchzuführen und den Ordner bin zu löschen, was nicht funktioniert hat. Mein Ausgabepfad wurde bereits auf bin \ gesetzt

Johnie Karr
quelle
Ich habe eine Neuerstellung auf Lösungsebene durchgeführt, aber festgestellt, dass der Bin-Ordner meines Projekts leer war. Ich habe nur auf dem Projekt aufgebaut und plötzlich hatte ich einen aufgefüllten Bin-Ordner. Ich habe das Projekt gestartet und es hat funktioniert.
MrBoJangles
1

Wenn Sie einen Namespace geändert haben, klicken Sie mit der rechten Maustaste und überarbeiten Sie ihn.

rocktheartsm4l
quelle
1

Dies kann sehr häufig vorkommen, wenn Sie Ihren Namespace ändern. Geben Sie den Namen Ihres Namespace zurück, so wie er früher war, und das sollte funktionieren!

user3576116
quelle
1

Unter bestimmten Umständen sind neue Projekte, die Sie erstellen, nicht standardmäßig so eingestellt, dass sie erstellt werden. Wenn Sie mit der rechten Maustaste auf Ihre Lösung klicken, wählen Sie Propertiesund wählen Sie Configuration Properties| ConfigurationKnoten auf der linken Seite und stellen Sie sicher, dass Ihr Projekt ein Häkchen unter dem hatBuild Spalte hat. Unter normalen Umständen habe ich festgestellt, dass dies standardmäßig geschieht. Unter anderen Umständen (ich habe zufällig eine etwas komplexe Web Api / Xamarin Android- und iOS / Mvc 5-Lösung, die dieses Verhalten aufweist) ist das Häkchen nicht vorhanden.

Dies hängt mit den anderen Antworten zusammen. Wenn die Assembly Ihres Webprojekts nicht verfügbar ist, wird dieser Fehler angezeigt. Dies kann jedoch ein häufiges Szenario sein, insbesondere da Sie Ihre Lösung tatsächlich kompilieren - das Projekt wird einfach nicht erstellt.

Kirk Woll
quelle
1

Ich habe diesen Fehler erhalten, weil meine Versionskontrolle so eingestellt wurde, dass mein bin- Ordner ignoriert wird . Sehr dumm, aber vielleicht wird jemand anderes davon profitieren.

Brent Waggoner
quelle
1
Möchten Sie nicht den Ordner bin ignorieren, zusammen mit obj und anderen Dingen, die erstellt wurden und nicht Teil des Quellcodes sind?
MrBoJangles
Normalerweise ja. Auf dieser speziellen Site war dies jedoch die einzige Möglichkeit, Elemente auf den Server zu übertragen. Ich hätte meine Antwort wahrscheinlich allgemeiner gestalten sollen.
Brent Waggoner
Ich verstehe die besonderen Umstände so.
MrBoJangles
1

Ich bin auf genau dieses Problem gestoßen und sehe dort alle möglichen Antworten, aber nichts wurde akzeptiert. Nach einer Weile stellte ich fest, dass das einfache Erstellen der Website vor dem Versuch, sie auszuführen, mein Problem löste.

Webternals
quelle