web-dev-qa-db-de.com

"Parser-Fehlermeldung: Typ konnte nicht geladen werden" in Global.asax

Ich arbeite an einem MVC3-Projekt und erhalte folgende Fehlermeldung:

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

Quellfehler: 

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

Der Fehler, den ich erhalte, ist, GodsCreationTaxidermy.Core.MvcApplication kann nicht geladen werden, aber in diesem Screenshot wird der Kern-Teil nicht in der Fehlermeldung angezeigt:

Error Page Screenshot

Hat jemand irgendwelche Ideen oder eine Lösung für diesen Fehler?

178
PsychoCoder

Ihr lokaler Webserver führt einen anderen Code aus als der, an dem Sie gerade arbeiten. Stellen Sie sicher, dass Sie mit dem Debuggen aufgehört haben, stoppen Sie Ihren lokalen Webserver, bereinigen und erstellen Sie ihn wie von Peter vorgeschlagen, überprüfen Sie Ihre global.asax und global.asax.cs erneut und versuchen Sie es erneut.

Wenn dies nicht funktioniert und Sie lokales IIS verwenden, entfernen Sie die Site im IIS - Manager und erstellen Sie sie manuell neu.

156
Facio Ratio

Überprüfen Sie, ob der Projektausgabepfad (Projekteigenschaften/Build) auf bin und nicht auf bin\Release oder bin\Debug eingestellt ist.

Aus irgendeinem Grund greift IIS (VS Development Server oder Local IIS) immer auf die Bibliotheken aus dem Verzeichnis bin zu (und sucht nicht nach Unterverzeichnissen)

183

Versuchen Sie, Ihre global.asax-Datei zu ändern (fügen Sie einfach irgendwo ein Leerzeichen hinzu) und führen Sie sie erneut aus. Dadurch wird der integrierte Webserver gezwungen, die Datei global.asax zu aktualisieren und neu zu kompilieren.

Machen Sie auch einen sauberen und rekonstruieren - sollte das Problem beheben

32
Peter Munnings

Dies geschieht manchmal, wenn Sie die Namensrauminformationen (Projekt- oder Klassenebene) ändern, nachdem der global.asax generiert wurde. 

Klicken Sie mit der rechten Maustaste auf die Global.asax-Datei und wählen Sie "Öffnen mit" und anschließend "XML (Text) Editor mit Kodierung" (andere Editoren funktionieren möglicherweise auch, aber ich verwende dies). 

Bearbeiten Sie anschließend den Abschnitt "Inherits" in der XML-Direktive 

<% @ Application Codebehind = "Global.asax.cs" Inherits = "GodsCreationTaxidermy.MvcApplication" Language = "C #"%>) 

damit es mit dem tatsächlichen vollständigen Namen Ihrer Application-Klasse übereinstimmt. Und das ist es. 

Eine andere Option ist, den gesamten Code aus Global.asax.cs zu kopieren und eine andere Global.asax-Datei zu löschen und zu erstellen (und den Code anschließend wieder in Global.asax.cs zu kopieren).

25
Paul Easter

Ich habe Visual Studio geschlossen und wiedereröffnet und es hat funktioniert. 

17
Gagan

Ich musste zu BUILD -> CONFIGURATION MANAGER gehen und - ähm - das Kontrollkästchen neben meinem Projekt markieren, um sicherzustellen, dass es tatsächlich erstellt wird. 

15
Ron Newcomb

Ich hatte dieses Problem heute und es dauerte eine Weile, bis ich die Ursache fand.

Mein VS2015-Hauptprojekt beinhaltete im Wesentlichen ein Teilprojekt, das mit einer höheren Version von .Net Framework erstellt wurde.

Wenn Sie dieses Problem haben, wird der VS2015 seltsamerweise glücklich berichten, dass die Lösung in Ordnung ist, aber wenn Sie versuchen, die Website auszuführen, erhalten Sie nur diesen irreführenden Fehler, der darauf hinweist, dass Ihre Global.asax.cs-Datei falsch ist.

Wenn Sie diesen Fehler sehen und das Bereinigen/Wiederherstellen nicht hilft, öffnen Sie die References-Baumstruktur Ihres Projekts und suchen nach Ausrufezeichen.

 enter image description here

Überprüfen Sie auch Ihr Output-Fenster auf Nachrichten wie diese:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
could not be resolved because it was built against 
the ".NETFramework,Version=v4.5" framework. 
This is a higher version than the currently targeted framework
".NETFramework,Version=v4.0".

Die Lösung besteht natürlich darin, dass Sie mit der rechten Maustaste auf Ihr Hauptprojekt klicken, die oberste Registerkarte "Anwendung" auswählen und die Ziel-Framework-Version in eine höhere Version umwandeln, die Ihrem Unterprojekt entspricht.

Es ist ärgerlich, dass Sie in Visual Studio 2015 Lösungen erstellen und ausführen können, die dieses Problem in aller Stille enthalten. Es verlangt nach Ärger ..!

4
Mike Gledhill

Ich arbeitete an einem älteren "Ordner-basierten" ASP.NET-Webprojekt (das ich nicht gern gesehen habe) - und stellte fest, dass dies mein Fix war:

Erstellen Sie einen App_Code-Ordner (falls Sie noch keinen haben)

Verschieben Sie die Global.asax.vb-Datei in den App_Code-Ordner

Das Markup in Global.asax kann beliebige Namespaces weglassen (zumindest für diesen Projektstil, afaik):

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>

... wobei "MyApp" der Name der in Global.asax.vb definierten Klasse ist

2
bkwdesign

Ich muss berichten, dass ich mindestens 4 Vorschläge aus diesem Beitrag ausprobiert habe. Keiner von ihnen hat gearbeitet. Ich freue mich jedoch, Ihnen mitteilen zu können, dass ich mich beim Abrufen aus dem Backup wieder erholt habe. Ich musste nur meine letzten Codeänderungen aus der Protokolldatei aktualisieren. Es dauerte weniger als 10 Minuten. Verbrachte dreimal das Lesen dieses Beitrags und probierte andere Vorschläge aus. Es tut uns leid.

Es war ein sehr seltsamer Fehler. Viel Glück an alle anderen, die diesen Gremlin treffen.

2
htm11h

Ich bin gerade auf eine MVC5-Anwendung gestoßen und nichts hat für mich funktioniert. Dies geschah direkt nachdem ich versucht hatte, einen SVN auf eine ältere Version des Projekts zurückzusetzen.

Ich musste löschen global.asax.cs und fügte dann ein neues hinzu, indem Sie mit der rechten Maustaste auf Projekt -> Neues Element hinzufügen -> Global.asax klicken und das wurde schließlich behoben.

Ich dachte nur, es könnte jemandem helfen.

Ich habe dasselbe Problem, wenn zwei Instanzen von Visual Studio dasselbe Projekt ausführen. Also habe ich sowohl Visual Studio geschlossen als auch nur eine Instanz geöffnet und funktioniert jetzt einwandfrei!

Auch ich hatte das gleiche Problem. Trotz der Beantwortung jeder Antwort hat es nicht funktioniert. Dann habe ich "Inherits = namespace.class" in "Inherits = vollständig qualifizierter Assemblername" geändert, dh "Inherits = namespace.class, Assemblyname, Version =, Culture =, PublicKeyToken = " Hoffe, es hilft.

1
Mahesh

Leeren Sie den Bin-Ordner. Erstellen Sie alle abhängigen Klassenbibliotheken, verweisen Sie sie im Hauptprojekt und erstellen Sie die vollständige Lösung. 

Quelle

1

"BUILD -> CONFIGURATION MANAGER und - ähm - Aktivieren Sie das Kontrollkästchen neben meinem Projekt, um sicherzustellen, dass es tatsächlich erstellt wird." Gehen Sie in den Projektordner im Windows Explorer, drücken Sie Optionen und deaktivieren Sie die Option "Schreibgeschützt" Checkbox hat geholfen.

1
DiSaSteR

Dies kann auch passieren, wenn Sie versehentlich vergessen haben, Ihre VS-Lösung auf "Mehrere Startprojekte" zu setzen, wenn Sie Web und WebApi von derselben Lösung aus ausführen.

Sie können dies überprüfen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf Lösung klicken und "Eigenschaften" auswählen. Suchen Sie dann nach "Startprojekte".

1
Dave Black

Das Problem für mich ist, dass ich global.asax.cs nicht in mein Projekt aufgenommen habe. Und weil ich Dateien von .net 4.5 auf 4.0 kopiert habe, habe ich keine Zeilen auskommentiert, die in 4.0 nicht benötigt werden. Weil es nicht im Lieferumfang von Visual Studio enthalten war, wurde es trotzdem ohne Probleme kompiliert. Aber als ich es aufgenommen habe, wurden die Zeilen hervorgehoben, die Probleme verursachen.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//using System.Web.Http;
using System.Web.Mvc;
//using System.Web.Optimization;
using System.Web.Routing;

namespace YourNameSpace
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            //GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}
0
Satbir Kira

Löschen Sie das Verzeichnis .vs aus dem Lösungsstamm. Sauber. Wiederaufbau.

Diese Ausgabe bringt mich ab und zu in Verlegenheit und ich ende hier zwangsläufig durch Antworten. Ich vermute, es gibt mehrere Ursachen, die zu dieser Ausnahme führen können. Dies funktioniert einmal für mich.

0
Patrick

Für uns zeigt der Konfigurationsmanager die DLL-Builds als eine Mischung aus '64' und 'any cpu' builds an.

Wenn Sie alle auf den gleichen Build setzen, wird dies behoben.

0
Carra

Ich verbrachte buchstäblich einen Tag damit, das Problem zu lösen.

Das einzige, was funktioniert hat, war das Löschen der .sln-Datei, das Erstellen einer neuen Datei und das Hinzufügen der Projekte nacheinander.

\ _ (ツ) _/¯ - Programmierung - ¯\_ () _/¯ 

0
Stachu

Ich habe das Problem so gelöst: Fixiere einfach den namespace in Global.asax.

0
MarianNikolov

Sie können auch die Eigenschaften Ihrer Site in IIS überprüfen. (Klicken Sie mit der rechten Maustaste in IIS auf die Site, und wählen Sie Eigenschaften aus.) Stellen Sie sicher, dass die Einstellung Physischer Pfad auf den richtigen Pfad für Ihre Anwendung und nicht auf eine andere Anwendung verweist. (Das hat diesen Fehler für mich behoben.)

0
Rob Cole

Ich habe auch den gleichen Fehler erhalten ... Überprüfen Sie die IIS - Konfiguration Ihres virtuellen Verzeichnisses und stellen Sie sicher, dass Eigenschaften - ASP.NET - ASP.NET - Version mit Projekteigenschaften - Anwendung - Ziel - Framework identisch ist. (Das hat diesen Fehler für mich behoben.)

0
montearg70

Ich habe festgestellt, dass das Ändern des Namespaces für das Projekt mein Problem war, ohne dass dies für die gesamte Lösung geändert wurde. Überprüfen Sie die Eigenschaften Ihres Projekts und sehen Sie sich Ihren Namespace an.

0
Hadley

Meine App wurde in einer älteren Version von VS erstellt und hatte keinen Ordnerordner. Ich hatte es auf eine neuere Version aufgerüstet und hatte einen Alptraum, um es bereitzustellen. Ich habe diesen Fehler schließlich auf Projekt> Eigenschaften> Anwendung zurückverfolgt. Das Zielframework wurde auf 2,0 festgelegt. Wenn Sie die Einstellung auf dem Server im IIS Manager/App Pool entsprechend anpassen, wurde das Problem für mich behoben. 

0
jeffe65

Ich habe absolut alles hier versucht und nichts hat funktioniert. Mein Projekt war VS 2013. Ich habe seitdem ein Upgrade auf VS 2015 durchgeführt und habe 2015 alle meine neuen Anwendungen erstellt, aber alle meine alten Apps, die 2013 in dieser Version erstellt wurden, wurden geladen, kompiliert, erstellt usw.

Am Ende habe ich die Lösung erst 2015 geladen und sie wurde für mich gelöst.

0
Blair Holmes

Dieses Problem wurde durch die Erlaubnis des Ordners sowie die Überprüfung durch IIS behoben.

Ich habe allen die Erlaubnis erteilt, während ich in meiner Umgebung teste. Aber im Veröffentlichungsmodus denke ich, dass wir nur ASP.Net-Benutzern die Erlaubnis geben.

0
Ajay2707

Ein Wiederherstellungsprojekt kann das Problem lösen.

0
suphero

Ich habe auch den gleichen Fehler ... Überprüfen Sie den Namen der von Ihnen entwickelten Anwendung, dh. Wenn der Namespace und der Assemblyname zugewiesen wurden und versuchen Sie, den Namen des für die Anwendung erstellten Ordners physisch zu ändern, sollte dies alles dem Namen im obigen Namespace in der Datei global.asax entsprechen

0
Bhavik

Ich habe diese Fehlermeldung gefunden und schließlich festgestellt, dass die Fehlermeldung irreführend war. In meinem Fall scheint ein Routing-Problem in IIS aufgetreten zu sein, das dazu geführt hat, dass global.asax von einer anderen Site auf dem Webserver gelesen wurde, wodurch der Fehler generiert wurde.

In IIS war meine Site an http: * 80: webservices.local gebunden und enthielt eine Anwendung namens MyAPI. Ich habe die gefürchtete Nachricht erhalten, als ich die MyAPI-Anwendung mit der IP-Adresse des Webservers aufrief.

Um meine Anwendung erfolgreich aufrufen zu können, musste ich auf allen Computern, die die MyAPI-Anwendung aufgerufen haben, einen Eintrag für die Host-Datei für webservices.local hinzufügen. Alle meine Anfragen mussten dann mit http: //webservices.local/MyAPI/ vorangestellt werden, um eine korrekte Weiterleitung zu ermöglichen.

0
Sheldon

Ich habe mehrere Tage mit diesem Thema verbracht. Ich habe es schließlich mit der folgenden Kombination von Vorschlägen aus diesem Beitrag gelöst. 

  1. Ändern Sie das Plattformziel in eine beliebige CPU. Ich hatte diese Konfiguration zurzeit nicht, daher musste ich zum Konfigurationsmanager gehen und diese hinzufügen. Ich habe speziell für x64 kompiliert. Dies allein konnte den Fehler nicht beheben. 
  2. Ändern Sie den Ausgabepfad in bin\ anstelle von bin\x64\Debug. Ich hatte dies schon mehrmals versucht, bevor ich das Plattformziel geändert hatte. Es hat nie einen Unterschied gemacht, es sei denn, es wurde ein Fehler angezeigt, dass die Assembly aufgrund eines ungültigen Formats nicht geladen werden konnte. 

Um klar zu sein, musste ich beides tun, bevor es funktionierte. Ich hatte sie mehrmals einzeln ausprobiert, aber es wurde nie behoben, bis ich beides tat. 

Wenn ich eine dieser Einstellungen wieder auf die ursprüngliche Einstellung ändere, erhalte ich dieselbe Fehlermeldung, obwohl Clean Solution ausgeführt und alles im Verzeichnis bin manuell gelöscht wurde. 

0
Drew Chapin

fehler beim Laden Ihres Projekts können auftretenfirstly Fix your errors and after rebuild project its working

0
Codeone

Für meinen Fall war die Web-Assembly Teil von GAC ... Nach dem Build muss sie in GAC installiert werden und es hat funktioniert.

0
Vishnu