Parser-Fehlermeldung: Typ 'TestMvcApplication.MvcApplication' konnte nicht geladen werden.

152

Auf einem unserer Produktionsserver wird der folgende Fehler angezeigt. Nicht sicher, warum es auf dem DEV-Server funktioniert?

Parser-Fehler Beschreibung: Beim Parsen einer Ressource, die zum Bearbeiten dieser Anforderung erforderlich ist, ist ein Fehler aufgetreten. Bitte überprüfen Sie die folgenden spezifischen Analysefehlerdetails und ändern Sie Ihre Quelldatei entsprechend.

Parser-Fehlermeldung : Typ 'TestMvcApplication.MvcApplication' konnte nicht geladen werden.

Quellfehler :

Zeile 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C #"%>

Quelldatei: /global.asax Zeile: 1

Ich bin mir nicht sicher, ob jemand auf diesen Fehler gestoßen ist und wie er behoben wurde, aber ich habe das Ende erreicht. Jede Hilfe wäre dankbar.

Ich muss auch erwähnen, dass dies der veröffentlichte Code ist, damit alles kompiliert wird. Kann etwas mit meinen Compilereinstellungen nicht stimmen?

Riaan Engelbrecht
quelle
Mögliches Duplikat von Typ MvcApplication konnte nicht geladen werden
Alexander Prokofyev
15
Beenden Sie Visual Studio und starten Sie es neu, um es für mich zu beheben.
RickAndMSFT
Löschen Sie die Datei global.asax und fügen Sie eine neue hinzu.
DotNetGeek
Dies ist mir beim Bereitstellen einer zuvor funktionierenden Anwendung passiert. Etwas in IIS (7) ist in einen schlechten Zustand geraten; Das Zurücksetzen von IIS hat das Problem behoben.
BurnsBA

Antworten:

169

Keine der anderen Antworten hat bei mir funktioniert. Ich habe meinen Fehler behoben, indem ich den Ausgabepfad des Webprojekts geändert habe. Ich hatte es auf bin \ debug gesetzt, aber das Webprojekt funktioniert nur, wenn der Ausgabepfad einfach auf "bin" gesetzt ist.

Brian Leeming
quelle
Dies war mein Problem, verursachte mir so viel Kummer, weil keine der anderen Lösungen hier für mich funktionierte.
Zack
3
+1 Das war auch mein Problem. Die Fehlermeldung und Hilfe dazu ist grundsätzlich nicht vorhanden. Vielen Dank.
Noldorin
4
Für mich gab bin \ einen Fehler aus, ich habe ihn in bin nur geändert. und es hat funktioniert.
Nanu
1
Für mich war das Problem, dass ich versehentlich x86 als aktive Plattform ausgewählt hatte und für diese Konfiguration die Projekteinstellungen falsch waren (Bin \ Debug \ x86). Das Zurücksetzen auf eine beliebige CPU hat das Problem behoben. Das Ändern des Ausgabepfads hat aber auch funktioniert.
Lars Udengaard
13
Wenn Sie also den Ausgabepfad von bin \ Debug \ in bin ändern, wird der Fehler für mich behoben. Die eigentliche Frage lautet jedoch: "Warum funktioniert bin \ Debug überhaupt nicht?" Wenn ich eine Debug- oder Release-Konfiguration erstelle, möchte ich, dass die Dateien im entsprechenden bin-Verzeichnis generiert werden.
Ellesedil
96

Ich habe das schon ein paar Mal gehabt. Es ist besonders frustrierend, da es auf Anhieb ist und die Fehlermeldung keinen Hinweis darauf enthält, was das Problem sein könnte.

Um dies zu beheben, klicken Sie rechts Ihren Projekttitel, in diesem Fall „TestMvcApplication“ und klicken Sie auf Build .

Dadurch wird der Code kompiliert, bevor Sie ihn ausführen. Fragen Sie mich nicht warum, aber dies war zu 100% die Lösung für mich.

Andy Copley
quelle
4
+1 Ich auch. Und ich habe eine Reihe von Dingen ausprobiert, und mit "Dingen" meine ich "wilde Vermutungen". Gute Antwort!
Bob Kaufman
In meinem Fall zeigte IIS auf eine MVC-Site, die zuvor noch nicht erstellt worden war. Doh. Offensichtlich hat der Bau das behoben.
Edgar
5
Ich habe diesen Fehler auch beim Ändern des Projektnamens erhalten, aber vergessen, den von global.asax.cs verwendeten Namespace zu ändern.
Teuer
1
Sie sind ein Gentleman und ein Sir, haben nicht einmal daran gedacht, darauf aufzubauen. Vielen Dank!
Ben Black
2
In meinem Fall war mein Projekt aus irgendeinem Grund nicht so eingestellt, dass es die Lösungskonfigurationseigenschaften enthält: i.imgur.com/kp73sGQ.png
Matthew Lock
24

Ich habe festgestellt, dass die IDE eine Reihe von Unterverzeichnissen unter dem Ordner bin für das Webprojekt erstellt, wenn Sie gezwungen sind, den Konfigurationsmanager zum Ausführen unter x86 oder anderen Einstellungen als den Standardeinstellungen des Projekts "out of the box" zu verwenden.

Sobald dies geschieht und der Cassini-Server ausgeführt wird, wird das Projekt nicht ordnungsgemäß ausgeführt.

Ich habe das Problem behoben, indem ich in den Eigenschaften des Webprojekts -> Einstellungen erstellen und den Ausgabepfad in bin \ geändert habe

Dann wieder aufbauen und alles funktioniert wie es sollte.

DamoDBear
quelle
Bingo, das ist die Lösung, die auch für mich funktioniert hat. Danke dir!
Moshjeier
Hat auch für mich funktioniert - ist das nicht ein Fehler?
Matt Wilko
Und überprüfen Sie, ob die CheckBox auf Build überprüft wurde
Daniel Bişar
Wenn Sie jemals in Ohio sind, weil ich Ihnen 10 Biere kaufe, haben Sie sich über 3 Stunden lang verschiedene Vorschläge angesehen
Andrew Afternoon-Delight Hayde
9

Nach einem langen, harten Blick bin ich hier auf das eigentliche Problem gestoßen.

Die Assemblys wurden durch den FTP-Client beschädigt, mit dem ich die Dateien in eine gehostete Umgebung hochgeladen habe.

Ich habe meinen FTP-Client geändert und alles funktioniert wie vorgesehen.

Riaan Engelbrecht
quelle
9

Ich hatte das gleiche Problem: Meins war, weil das Webprojekt ein Plattformziel von x86 hatte. Ich lief auf einem 64-Bit-Computer. Andere Projekte in der Lösung wurden auf 64-Bit festgelegt.

Um Ihre Einstellungen zu überprüfen, klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Überprüfen Sie auf der Registerkarte Erstellen den Wert von "Plattformziel".

Überprüfen Sie auch die Build-Konfiguration Ihrer Lösung (Menü Build> Configuration Manager), um zu überprüfen, ob alle Ihre Projekte auf derselben Plattform erstellt werden.

Stellen Sie in beiden Fällen sicher, dass Sie die Einstellungen sowohl für den Debug- als auch für den Release-Modus überprüfen. Andernfalls funktioniert es auf Ihrem Computer, jedoch nicht, wenn Sie es bereitstellen!

teedyay
quelle
Ich musste diese Antwort mit der Antwort von @brockstaylor unten kombinieren, um dieses Problem auf Umbraco 7.1.6
devinbost
9

Ich habe alle oben genannten Lösungen ausprobiert, aber kein Glück. Das Hinzufügen einer Zeile <add assembly="*" />zu web.config hat das Problem für mich behoben. (Sie können der entsprechenden .NET Framework-Version auch die Datei machine.config oder root web.config der entsprechenden .NET Framework-Version hinzufügen. Ich habe es nicht versucht.) Dank an den MS-Support für die Lösung.

Manish Jain
quelle
Das war mein Problem. Ich musste <assemblies><clear/>...verhindern, dass Assemblyreferenzen von der übergeordneten Anwendung in einer verschachtelten IIS-Anwendung geerbt wurden.
Craig Celeste
Ich brauchte das nie ... als ich aus heiterem Himmel auf dieses Problem in einer meiner Entwicklungsmaschinen stieß. Ich weiß nicht, warum es angefangen hat, aber dies ist das einzige, was es gelöst hat
Pascal
9

Ich hatte den gleichen Fehler. Ich habe viele Vorschläge von vielen Seiten ausprobiert, nur um herauszufinden, dass das Problem darin bestand, dass ich die Website auf die falsche Version von .Net eingestellt hatte

Egal wie viele Neukompilierungen oder Personen, die "Konfigurationsproblem" sagen, niemand hat darauf hingewiesen, dass die .net-Version überprüft werden muss.

Carl Wright
quelle
8

IT passiert bei mir, wenn ich mein Projekt / meine Lösung umbenenne. Wechseln Sie im Windows Explorer zum Projektordner (verlassen Sie VS). Suchen und öffnen Sie die Datei Global (möglicherweise finden Sie 2 Dateien, öffnen Sie diese ohne die Erweiterung ".asax.cs") und bearbeiten Sie die Fehlerzeile mit dem richtigen Pfad. Viel Glück!

Paulo
quelle
Das ist eine großartige Antwort, sollte mehr positiv bewertet werden - das Umbenennen von Anwendungen erfolgt und solche Fehler sind ärgerlich!
Bartosz
7

Vor ein paar Tagen hatte ich genau das gleiche Problem - soweit ich das beurteilen kann, handelte es sich um ein Problem mit einem 64-Bit-IIS, auf dem eine 32-Bit-Webanwendung ausgeführt wird. Wir haben unseren Produktionsserver auf 32-Bit geändert und dieses Problem ist verschwunden.

Jaco Pretorius
quelle
5

Stellen Sie sicher, dass Ihr Standard-Namespace in den Eigenschaften des Webprojekts mit dem Namespace in der Datei Global.asax.cs übereinstimmt. Ich hatte den Standard-Namespace geändert, um ihn zu einem Sub-Namespace zu machen. Durch erneutes Ändern wurde dieses Problem für mich behoben.

Ace Hyzer
quelle
4

Der Vollständigkeit halber habe ich angegeben, was mein Problem war und wie ich es gelöst habe:

Wenn Sie mich mögen und httphandlers über web.config haben und Weiterleitungen von Ihrer global.asax.cs (möglicherweise in Session_Start ()) haben, wie in meinem Fall, erhalten Sie diesen Fehler, wenn in Ihrem Startprojekt keine Referenz definiert ist, auf die verwiesen wird das Ziel, auf das Ihr httphandler zeigt !! (aber Sie erhalten keine Build-Fehler, nur Laufzeitfehler)

So:

  1. Überprüfen Sie Ihre web.config auf externe Elemente
  2. Überprüfen Sie, ob Ihr Startprojekt alle benötigten Referenzen enthält.

Prost.

Chris
quelle
Ich hatte ein Ajax Toolkit-Steuerelement hinzugefügt, aber den Verweis auf die DLL nicht hinzugefügt. Danke für deine # 2.
Pixelmeow
4

Das einzige Mal, dass ich dies erlebt habe, war, als das MVC-Framework nicht auf dem Server installiert war. Könnte das der Fall sein?

Ein fehlender Seitenabschnitt in Views \ Web.config kann ebenfalls fehlerhaft sein.

Daniel Elliott
quelle
Nicht sicher, es ist ein gehosteter Server und laut ihnen funktioniert ASP .NET MVC einwandfrei.
Riaan Engelbrecht
Ich habe eine andere Person (bei Onkel Google) gefunden, bei der aus einem anderen Grund ein ähnlicher Fehler aufgetreten ist. Link zur Antwort hinzugefügt. Viel Glück!
Daniel Elliott
3

Ich hatte den gleichen Fehler und keine Ihrer Lösungen hat geholfen. Ich denke, mein Problem war einfach der Name, den ich für das Projekt gewählt hatte. Ich hatte mein Projekt "Schnittstelle" genannt. Als ich den Analysefehler bekam, hieß es, dass es nicht geladen werden konnte:

Zeile 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C #"%>

Wo aus irgendeinem Grund ein @ -Zeichen stand. Ich vermute, das Wort 'Schnittstelle' ist für etwas anderes reserviert und es hat das @ -Symbol hinzugefügt, aber das hat offensichtlich etwas kaputt gemacht. Ich habe das Projekt gelöscht und ohne Probleme ein neues mit einem anderen Namen erstellt.

Matt
quelle
3

Hier ist ein anderes:

  1. Ich hatte an einem Web-API-Projekt gearbeitet, das localhost: 12345 verwendete.
  2. Ich habe einen anderen Zweig als die Quellcodeverwaltung ausgecheckt, der dasselbe Projekt enthält.
  3. Ich habe das Projekt in der Filiale ausgeführt und den Fehler erhalten.
  4. Ich ging zu "Eigenschaften> Web> Projekt-URL" und klickte auf "Virtuelles Verzeichnis erstellen".
  5. In einem Dialogfeld wurde mir mitgeteilt, dass die URL einem anderen Verzeichnis zugeordnet wurde (dem Verzeichnis für das ursprüngliche Projekt).
  6. Ich klickte auf OK und das virtuelle Verzeichnis wurde neu zugeordnet.
  7. Der Fehler ging weg.

Ich hoffe das hilft irgendwo jemandem :)

grahamesd
quelle
das hat es tatsächlich für mich getan!
ra170
2

Ich hatte viele Probleme und Fehler zu lösen, einige der oben genannten Antworten haben geholfen, aber der letzte Trick, der es für mich funktioniert hat, war: Gehen Sie zu Ihrem Projekt und klicken Sie auf Eigenschaften.

Wechseln Sie zur Registerkarte Paket / Web veröffentlichen, und stellen Sie sicher, dass die Konfiguration auf Freigeben und Plattform für alle Plattformen eingestellt ist.

Stellen Sie zuletzt sicher, dass "Zu implementierende Elemente (gilt für alle Bereitstellungsmethoden)" auf "Alle Dateien in diesem Projektordner" eingestellt ist.

Es hat dann gut für mich funktioniert.

Emiel Haeghebaert
quelle
2

Dieses Problem ist kompliziert, da es leicht ist, die Grundursache mit der unmittelbaren Ursache zu verwechseln.

In meinem Fall war die unmittelbare Ursache, dass die Lösung für die Verwendung von NuGet Package Restore konfiguriert ist, der Server jedoch nicht mit dem Internet verbunden war, sodass NuGet die Abhängigkeiten beim erstmaligen Erstellen nicht herunterladen konnte.

Ich glaube, die Hauptursache ist einfach, dass die Lösung Abhängigkeiten nicht richtig auflösen kann. Möglicherweise handelt es sich um eine falsche Pfadkonfiguration, eine falsche Version einer Assembly, widersprüchliche Assemblys oder eine teilweise Bereitstellung. In allen Fällen bedeutet der Fehler jedoch lediglich, dass der in global.asax angegebene Typ nicht gefunden werden kann, da er nicht erstellt werden kann.

shovavnik
quelle
2

Stellen Sie sicher, dass der Namespace in der Global.asaxDatei mit dem in der übereinstimmtGlobal.cs d. H.

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website(abzüglich der 'WebApplication')

TheDaveJay
quelle
2

Ich habe die meisten der oben genannten Antworten ausprobiert und sie haben nicht funktioniert. Aus irgendeinem Grund wurde das Problem durch einfaches Schließen und erneutes Öffnen von VS behoben.

Rochelle C.
quelle
2

Mein Problem wurde behoben, als ich in IIS den physischen Ordner, der die Dateien enthielt, in eine Anwendung konvertierte. Klicken Sie mit der rechten Maustaste> In Anwendung konvertieren.

jayt.dev
quelle
1

Für mich lag es daran, dass ich die Datei vorübergehend aus dem Projekt ausgeschlossen hatte. Ich habe es lediglich wieder in das Projekt aufgenommen und dann hat es funktioniert.

mstechnewbie
quelle
Meins auch, die Lösungsdatei hat ein paar Dateien entfernt und ich habe nicht
bemerkt
1

In meinem Fall fehlte in meinem Projekt die Referenz von System.Web.MVC. Aber nach dem Hinzufügen von Referenzen war das Problem dasselbe, also überprüfte ich die Eigenschaften meines Bin-Ordners, es war ReadOnly. Kurz nachdem es beschreibbar gemacht wurde, funktioniert alles einwandfrei.

Yashpal
quelle
1

Ich habe einen Fehler erhalten, weil ich die Anwendung als virtuelles Verzeichnis bereitgestellt habe und den Parserfehler "Typ konnte nicht geladen werden" erhalten habe. Dann habe ich die Anwendung als Website bereitgestellt und diesen Fehler nicht erneut erhalten.

Riaz
quelle
0

Keine der anderen Antworten hat diesen Fehler für mich behoben.
Ich habe eine Lösung gefunden, die funktioniert, die ich für diejenigen in der gleichen Situation vorschlage:

  1. Schließen Sie Visual Studio
  2. Navigieren Sie zu Projects \ yourProject \ yourProject
  3. Benennen Sie Web.Debug.config und Web.Release.config um
  4. Erstellen Sie Ihre Anwendung neu und führen Sie sie aus
Charles Burns
quelle
Löschte diese ... und jetzt erscheinen sie nicht wieder.
FiringSquadWitness
0

Ich bin nie wirklich auf den Grund gegangen, was es für mich verursacht hat. Ich denke, irgendwo muss ich einige Dateien vermisst haben. Ich habe den Fehler nach dem Veröffentlichen auf einem neuen Server erhalten. Schließlich habe ich die Site von der Arbeits-Site kopiert. Dann funktionierte die Site und veröffentlichte sie weiter auf dem neuen Server.

Giles Roberts
quelle
0

Folge diesen Schritten:

  1. Bauen
  2. Konfigurationsmanager
  3. Setzen Sie das AnyCPU-Projekt
  4. Zurück zum Generieren
  5. Fertig, danach befolgen Sie einfach die gleichen Schritte, um es an x86 oder x64 zu übergeben
Ragdare
quelle
0

Für mich war eine DLL in meinem Projekt enthalten, die in einer 32-Bit-Umgebung ausgeführt werden musste.

Der Server wurde so konfiguriert, dass die Website im 32-Bit-Modus ausgeführt wird. Ich konnte die Anwendung jedoch nicht auf meinem 64-Bit-Computer localhostausführen, da der Ordner nicht für die Ausführung im 32-Bit-Modus angegeben wurde.

jp2code
quelle
0

Ich hatte gerade ein ähnliches Problem.

Der Grund war, dass ich eine Datei.aspx.c änderte und eine saubere Neuerstellung durchführen musste. Danach hat alles geklappt.

Fannar Örn Hermannsson
quelle
0

Mein Problem war, dass ich versuchte, eine ASPX-Webanwendung in einem Unterordner eines Ordners zu erstellen, der bereits eine web.config-Datei hatte, und

Daher habe ich den übergeordneten Ordner in Visual Studio als Website geöffnet (Öffnen> Website). Ich konnte eine neue ASPX-Elementseite hinzufügen, bei der keine Probleme beim Parsen / Laden aufgetreten sind.

Jamespgilbert
quelle
0

Für mich bestand das Problem nur bei bestimmten (langen) Links innerhalb der Website und wurde auf URLScan mit der Standardkonfiguration einer URL-Längenbeschränkung von 260 zurückgeführt.

James
quelle
0

Ich hatte das gleiche Problem. Versuchen zu:

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Bereinigen. Klicken Sie dann erneut mit der rechten Maustaste darauf und wählen Sie Neu erstellen und führen Sie das Projekt aus, um festzustellen, ob es funktioniert hat.

da Rocha Pires
quelle