“Der Typ .Global” konnte nicht geladen werden, was mich traurig machte

In meiner .NET 2.0 Asp.net WebForms App habe ich meine Global.asax mit dem folgenden Code:

 

Aber wenn ich baue, bekomme ich eine Fehlermeldung

Der Typ ‘MyNamespace.Global’ konnte nicht geladen werden.

Dies liegt daran, dass der MyNamespace-Namespace (der im Code hinter der Datei Global.asax.cs definiert ist) vom Compiler in der Datei Global.asax nicht gesehen wird (wird nicht in R # intellisence angezeigt). Dies erwies sich als eine sehr harte Nuss zu knacken … jede Hilfe wird geschätzt werden!

Hinweis: Global.asax und Global.asax.cs befinden sich im selben Ordner.

Anmerkung2: Beim Kompilieren von der vs-Eingabeaufforderung mit csc kompiliert es ok

Eine Situation, die mir dieses Problem verursacht hat, ist, wenn Sie die Plattform für einen Build über “Build Configuration” angeben.

Wenn Sie x86 als Ihre Build-Plattform angeben, weist Visual Studio automatisch bin / x86 / Debug als Ihr Ausgabeverzeichnis für dieses Projekt zu. Dies gilt auch für andere Projekttypen, mit Ausnahme von Webanwendungen, bei denen ASP.NET die Ausgabe der Assemblys in den Bin-Ordner erwartet.

Was ich in meiner Situation fand, war, dass sie an beide ausgegeben wurden (Bin und Bin / x86 / Debug), mit der Ausnahme, dass einige der DLLs, und unerklärlicherweise die wichtigste Ihrer Webanwendungs-DLL, aus dem Bin fehlten Mappe.

Dies führte offensichtlich zu einem Kompilierungsproblem und daher zu der Ausnahme “Typ nicht global laden”. Das Bereinigen der Lösung und das Löschen der Assemblys machte bei nachfolgenden Builds keinen Unterschied. Meine Lösung bestand darin, nur den Ausgabepfad in den Projekteinstellungen für die Webanwendung in Bin zu ändern (anstatt in bin / x86 / Debug).

Haben Sie den Namensraum Ihres Projekts geändert? Ich habe das gelegentlich gesehen, wo ich den Namespace im Dialogfeld Projekteigenschaften geändert habe, aber Visual Studio hat die namespace in vorhandenen namespace nicht geändert.

Ich bin neu in der Entwicklung von ASP .net und ich sah mich dem ähnlichen Problem gegenüber.

Ich habe die class als partial aktualisiert und es hat gut funktioniert.

 public partial class Global : System.Web.HttpApplication 

Ich habe Visual Studio neu gestartet und der Fehler ist weg!

Hier ist noch eins für die Bücher. Es scheint, dass dies geschieht, wenn Sie mehr als eine Webanwendung über dieselbe Portnummer starten.

Grundsätzlich habe ich ein paar Zweige, die ich arbeite, ich habe eine Hauptzweig und eine Staging-Filiale und eine Freisetzungs-Filiale. Als ich den Zweig zum Staging-Zweig wechselte, bemerkte ich, dass es die gleiche Port-Adresse-Konfiguration verwendete, also entschied ich mich, das zu ändern. Ich habe dann eine weitere Warnung erhalten, dass diese Reservierung mit einer anderen konfigurierten Anwendung in Konflikt steht. Der IIS Express-Server ist diesbezüglich sensibel und aus irgendeinem Grund erstellt er die Konfiguration.

Durch einfaches Auswählen eines dritten nicht betroffenen Ports ist dieses Problem weggefallen, weil es dann den Port einer neuen Verzeichniszuordnung zuordnet (meine Zweige sind auf der Platte anders angeordnet). Ich bemerkte dies, weil ich versuchte, den Global.asax zu ändern, auf den Global.asax aber der Global.asax war auch nach dem Neustart des Servers unverändert, so dass der Code, den ich änderte, von der IIS Express-Bereitstellung nicht wiedergegeben wurde.

Bevor Sie also zu viel Schlaf verlieren, sollten Sie die IIS-Portnummer ändern, die derzeit zum Ausführen des Webprojekts verwendet wird.

  1. Klicken Sie mit der rechten Maustaste auf Project Solution und wählen Sie Batch Build.
  2. Wählen Sie dann Ihren Projektnamen und reinigen und neu aufbauen.

functioniert gut für mich in VS 2015. Jetzt kann ich Global Event verwenden. Meine Global.asax Datei hat diese Zeile

 < %@ Application Language="C#" CodeBehind="~/App_Code/Global.asax.cs" Inherits="Global" %> 

Und ich mache die classndatei Global.asax.cs , die im AppCode Ordner aussieht

 public partial class Global : HttpApplication { public Global() { // // TODO: Add constructor logic here // } } 

Ich hoffe, das wird helfen

Überprüfen Sie die Build-Aktion von Global.asax.cs. Es sollte auf Kompilieren festgelegt werden.

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Global.asax.cs, und wechseln Sie zu Eigenschaften. Legen Sie im Bereich Eigenschaften die Build-Aktion fest ( ohne Debugging).

Es scheint, dass VS 2008 die .asax (.cs) -Dateien nicht immer standardmäßig korrekt hinzufügt.

In meiner Situation war es mit dem Web Site / Web Application Typ des Projekts verbunden. Wir sind kürzlich zu MVC gewechselt und mussten es in Web Application ändern.

Die Lösung war also einfach: Wählen Sie Ihre Website im Projektmappen-Explorer aus und entfernen Sie sie aus der Projektmappe, klicken Sie dann mit der rechten Maustaste auf die Projektmappe und wählen Sie Hinzufügen -> Vorhandenes Projekt ( keine Website ) aus, kompilieren Sie die Website neu.

Alte Post, aber ich gehe diesen Fehler beim Versuch, von Website-Projekt zu Web-Anwendungsprojekt zu konvertieren.

Befolgen Sie die statementen in diesem Link . Ich habe immer noch den global.asax-Fehler, aber alles was ich getan habe, war löschen und wieder hinzufügen, indem Sie mit der rechten Maustaste auf das Projekt im Visual Studio klicken und Neues Objekt hinzufügen auswählen. Fügen Sie die Datei global.asax hinzu und es hat funktioniert.

Ich habe einen ähnlichen Fehler erlebt, wenn ich eine

  

tag als Kind (das erste Kind) des

  

Tag in meiner Web.config . Ich hatte die Tags in meine web.config eingefügt, um zu verhindern, dass die Konfiguration in einer Anwendung, die auf der Standardwebsite in IIS implementiert wurde, übernommen wurde.

Ich hatte meine Lösung von VS2003 auf VS2010 umgestellt und hatte Probleme beim Konvertieren des Webanwendungsprojekts.

Ich habe das exakt gleiche Problem erlebt und keine der Antworten hat für mich funktioniert.

Was für mich funktionierte war:

  • Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie Configuration Manager
  • Betrachtete jede der Konfigurationen in der Dropdown-Liste “Aktive Lösungskonfiguration”.
  • Enthalten Sie die Webanwendung im Build, indem Sie das Kontrollkästchen “Build” aktivieren.

Es scheint, dass die Probleme, die ich während der Konvertierung hatte, aus irgendeinem Grund das Webanwendungsprojekt aus dem Build entfernt haben.

Hoffentlich hilft diese Antwort jedem anderen, der das gleiche Problem hat …

Wenn Sie ein Projekt neu erstellen oder ändern und Dateien von einem alten Projekt verschieben, stellen Sie sicher, dass Sie den Übernahmeblock Ihres globalen Projekts aktiviert haben. In meinem Fall wurde das vorherige Projekt / Lösung als Intranet bezeichnet, und ich hatte es als Intranet neu erstellt, aber als ich die Dateien durchging, mochte es den Kleinbuchstaben (duh) nicht. Machen Sie einfach einen allgemeinen Überblick über die Namen der Dateien.

Ändern Sie die GUID der Assembly. Dies behebt viele VIELE Probleme, die ich gefunden habe.

Ich hatte ähnliche Probleme, bei denen ich diesen Fehler bei einem Projekt erhalten habe.

 “Could not load type [Namespace].Global Error in Line 1 etc etc 

Nach einiger Zeit vermute ich eine function mit möglichen Fehlern in einer class .. später kommentieren, dass bestimmte function mein Problem getriggers wird.

Ich weiß nicht, warum Visual Studio mir diesen spezifischen Fehler zur Zeit der Fehlersuche nicht gab. Dieser Fehler kann jedoch aufgrund einiger Fehler in der classndatei auftreten.

Nichts davon funktionierte leider für mich. Die Fehlerbehebung, die ich gefunden habe, war spezifischer für die Entwicklung, speziell für das Debugging auf Ihrem lokalen Rechner. Außerdem behebt es das Problem leider nicht so, wie ich es mir erhofft habe, aber wenn du am Ende bist, könnte das dich wieder zum Laufen bringen.

TL; DR: Wählen Sie in den Projekteigenschaften auf der Registerkarte Web unter Server die Option Lokalen IIS-Webserver verwenden aus. Die Adresse,

 http://localhost/MyApp" 

war bereits ausgefüllt (ich habe IIS7, .NET 4.0). Was ursprünglich ausgewählt wurde, war der “Use Visual Studio Development Server” mit einem virtuellen Pfad von “/”

Was mir wirklich rätselhaft ist, ist die Tatsache, dass nichts anderes funktioniert hat. Ich habe alle Vorschläge durchgelesen, die ich auf SO finden konnte, und nichts würde funktionieren. Das Seltsame ist, dass der Fehler (anscheinend waren es ein paar Monate seit ich zuletzt geschaut habe) manifestierte, als ich eine neue Ascx-Datei hinzufügte, die einer existierenden ähnlich war, die von einem alten .net 2.0 (ich denke) Projekt hinzugefügt wurde Dies würde eine benutzerdefinierte Benutzerverwaltung innerhalb der Anwendung ermöglichen. Es funktionierte, schön, für eine lange Zeit, bis ich versuchte, diese neue Datei hinzuzufügen. Nach dem Hinzufügen und dem Erkennen des Fehlers habe ich sofort alle Änderungen rückgängig gemacht, aber der Global.ascx-Fehler würde nicht verschwinden, nicht einmal das gesamte Projekt wegblasen und das Neueste aus der Quellcodeverwaltung holen.

Diese Arbeit für mich: Die erste Sache: Es scheint, dass egal was Sie Visual Studio gesagt haben, die Ide immer die Datei in: bin (für Web-App und natürlich in meinem Fall) Also, auch wenn ich zu Visual Studio sagte ein bestimmter Pfad zum Laden der Datei, suchen die Ide für den falschen Weg. So ändere ich im: Build / Configuration Manager den Ausgabetyp zu: Release (vorher habe ich die Lösung selbst manuell aufgeräumt) also wurde beim Erstellen der Datei .dll manuell in den “bin” Ordner unter dem Projekt / Lösung verschoben Mappe. Hoffe, das wird hilfreich sein !!

In meinem Fall war es wegen meines Zielprozessors (x64) ich änderte es auf x86 säuberte das Projekt, startete VS (2012) neu und baute das Projekt um; dann war es weg.

Als ich vor kurzem auf dieses Problem stieß, versuchte ich alles, was hier erwähnt wurde, aber ohne Erfolg. Nachdem ich mir die Haare ausgerissen hatte, beschloss ich, meine gesamte Codebasis zu löschen (ja, ziemlich verzweifelt!) Und dann alles aus meinem Code-Repository herunterzuladen. Danach hat alles wieder gut funktioniert.

Scheint eine extreme Lösung, aber ich dachte, ich würde es hier einfügen, da es in diesem Thread noch nicht erwähnt wurde.

(Beachten Sie, dass das andere Mal dieses Problem aufgetreten ist, wenn das Global.asax von einer Komponente geerbt wurde, die auf dem Host-Computer registriert werden musste. Das fehlte, daher habe ich das gleiche Problem).

TL; DR; Wenn alle Antworten in diesem Thread für Sie nicht funktionieren, versuchen Sie, die gesamte Codebasis zu löschen und erneut herunterzuladen!

Ich habe dieses Problem ein paar Mal gesehen und in jedem Fall habe ich einen Computer neu aufgebaut oder bin auf einen neuen Computer umgestiegen. Mein erster Schritt (neben der Aktualisierung der Maschine und der Installation von Visual Studio) besteht darin, meine Projekte von Git herunter zu ziehen und sie zu testen.

Ich habe diesen Fehler jedes Mal getroffen, weil ich versucht habe, auf meinen lokalen Code zuzugreifen, bevor ich ihn kompiliere. Sie sehen, ich habe Git und Subversion Setup, meine bin / build-Ordner zu ignorieren, also habe ich nach einem Pull aus meinem Repository vergessen, einen Build zu starten, der benötigte Pakete von Nuget holt (da ich Git / SVN auch diese ignoriere) und erstellt DLLs benötigt, um meine App tatsächlich laufen zu lassen.

Ich bezweifle, dass dies die Probleme der meisten Menschen lösen wird, aber ich sah es nicht auf der Liste möglicher Lösungen, also dachte ich, ich würde es hinzufügen.

Ich war verwirrt von der gleichen verdammten Frage. Ich habe versucht zu entfernen und und die global.asax (geschlossen VS2010 vor dem Hinzufügen). Das Projekt / die Lösung wurde bereinigt, auf Änderungen in der Webanwendungskonfiguration und auf andere Elemente, die in SO-Threads für andere Personen funktioniert haben, überprüft. Ich löschte schließlich die Lösung, löschte die bin / obj-Ordner und stoppte alle laufenden VS2010-Entwicklungsserver, dann stellte ich alle Änderungen zurück und fand, dass die Anwendung wieder lief. Ich habe die gleichen Dinge neu gemacht und jetzt funktioniert es gut.

Es ist wieder passiert und dieses Mal hat diese Lösung für mich funktioniert.

Wechseln Sie zum Konfigurationsmanager unter Eigenschaften für Ihre Lösung. Stellen Sie dann sicher, dass alle Projekte fertiggestellt sind, und das wird kein Problem sein.

Ich musste Dateien von der Festplatte löschen (duplizieren), die nicht im Projekt enthalten waren. Sieht so aus, als ob die Duplikate durch eine fehlgeschlagene Umbenennung verursacht wurden. Die Dateinamen waren unterschiedlich, aber derselbe Code.

Nach dem Löschen aller oof. * Dateien konnte ich scannen.

  • foo.aspx
  • foo.aspx.cs
  • foo.aspx.designer.cs
  • oof.aspx
  • oof.aspx.cs
  • oof.aspx.designer.cs

In meinem Fall war es IISExpress, das auf denselben Port wie IIS zeigt, um es zu lösen

 C:\Users\Your-User-Name\Documents\IISExpress\config\applicationhost.config 

Wenn Sie nach dem Port suchen, finden Sie das ... tag ... -Tag, das Sie entfernen oder kommentieren müssen

In meinem Fall hatte ich Global.asax zu einem WCF-Projekt hinzugefügt, um damit zu experimentieren, entschied mich aber, es zu entfernen. Ich entfernte es aus dem Projektmappen-Explorer, aber da es sich immer noch im Ordner befand, fand die Pipeline es immer noch und verursachte diesen Fehler.

Ich habe die Dateien Global.ASAX und GLobal.asax.cs aus dem Dateisystem entfernt und den Fehler behoben.

Ich hatte dieses Problem bei der Bereitstellung auf dem Prod-Server. In meinen anderen Umgebungen funktioniert es … Ich habe gerade Sachen im bin-Ordner gelöscht, dann neu veröffentlicht und danach funktioniert es.

Wenn Sie Visual Studio verwenden, versuchen Sie wahrscheinlich, die Anwendung im Freigabemodus auszuführen, und versuchen Sie, sie in den Debug-Modus zu ändern.

Ich habe versucht, Lösung und ASP.NET temporäre Dateien ohne Erfolg zu löschen.
Aber nach dem Ausführen von IISRESET ist der Fehler verschwunden.

Update : Ich hatte das gleiche Problem wieder einen Monat später. Ich habe festgestellt, dass MyWebsite.DLL im bin-Ordner vorhanden ist, aber nicht in temporären ASP.NET-Dateien vorhanden ist (C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporäre ASP.NET-Dateien). Ich habe ein paar Dinge versucht, die hier vorgeschlagen werden und “Parser Fehlermeldung: Typ konnte nicht geladen werden” in Global.asax Fragen (ich habe tatsächlich meine eigene Antwort vergessen), aber der Fehler verschwand erst wieder nach IISRESET

Nun, in meinem Fall VS 2017, verursacht die leichte Lösung laden dieses Problem. Ich habe es deaktiviert und neu gestartet VS dann neu bauen meine Lösung und das Problem weg.

Ich wollte nur meine zwei Cent hinzufügen. Ich erhielt denselben Fehler und versuchte alle Vorschläge ohne Erfolg. Meine Situation ist wahrscheinlich anders?

Es stellte sich heraus, dass eine automatisch generierte Datei “AssemblyInfo.cs” einige überflüssige Leerzeichen enthielt, was mich daran hinderte, die Web-App zu starten (über Debugging). So sah die Datei aus:

 [assembly: AssemblyTitle("WebApplication2")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany(" ")] [assembly: AssemblyProduct("WebApplication2")] [assembly: AssemblyCopyright("Copyright © 2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] 

Nach dem Löschen der Leerzeichen in AssemblyCompany und AssemblyCopyright konnte ich das Projekt endlich erstellen und starten.

In der folgenden Umgebung beobachtet: –Visual Studio 2017 Community Version 15.3.0 – Win 7 x64 Enterprise – Neues Projekt> Visual C #> Web> ASP.NET-Webanwendung> Web Forms

Dieses Problem ist aufgetreten, wenn ich versehentlich “Chrome” als Standardbrowser für das Debugging festgelegt habe. Als ich es auf “IE” zurückstellte, verschwand das Problem. Ich bin mir nicht sicher warum …


EDIT: Ich war im Begriff, diese Antwort zu löschen, weil ich nicht sicher war, aber dann hatte ich das Problem wieder. Ich wechselte zum Surfen mit Chrome, dann wieder zurück zum IE und es hörte auf! Was gibt!?