In meiner .NET 2.0 Asp.net WebForms-App habe ich meine Global.asax mit dem folgenden Code:
<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>
Beim Erstellen erhalte ich jedoch eine Fehlermeldung:
Typ 'MyNamespace.Global' konnte nicht geladen werden.
Dies scheint daran zu liegen, dass der MyNamespace-Namespace (definiert im Code hinter der Datei Global.asax.cs) vom Compiler in der Datei Global.asax nicht gesehen wird (wird in R # Intellisence nicht angezeigt ..). Es stellte sich heraus, dass dies eine sehr harte Nuss war ... jede Hilfe wird geschätzt!
Hinweis: Die Dateien Global.asax und Global.asax.cs befinden sich im selben Ordner.
Hinweis 2: Beim Kompilieren von der vs-Eingabeaufforderung mit csc wird ok kompiliert
Antworten:
Eine Situation, die dieses Problem verursacht hat, ist die Angabe der Plattform für einen Build über "Build-Konfiguration".
Wenn Sie x86 als Build-Plattform angeben, weist Visual Studio automatisch bin / x86 / Debug als Ausgabeverzeichnis für dieses Projekt zu. Dies gilt auch für andere Projekttypen, mit Ausnahme von Webanwendungen, bei denen ASP.NET erwartet, dass die Assemblys in den Ordner Bin ausgegeben werden.
Was ich in meiner Situation fand, war, dass sie in beide ausgegeben wurden (Bin und Bin / x86 / Debug), mit der Ausnahme, dass einige der DLLs und unerklärlicherweise die wichtigste, die Ihre Webanwendungs-DLL ist, im Bin fehlen Ordner.
Dies verursachte offensichtlich ein Kompilierungsproblem und daher die Ausnahme "Typ konnte nicht geladen werden". Das Reinigen der Lösung und das Löschen der Baugruppen machte für nachfolgende Builds keinen Unterschied. Meine Lösung bestand darin, einfach den Ausgabepfad in den Projekteinstellungen für die Webanwendung in Bin (anstelle von bin / x86 / Debug) zu ändern.
quelle
Haben Sie den Namespace Ihres Projekts geändert? Ich habe dies gelegentlich gesehen, als ich den Namespace im Dialogfeld "Projekteigenschaften" geändert habe, Visual Studio jedoch die
namespace
Deklaration in vorhandenen Codedateien nicht geändert hat .quelle
Ich bin neu in der Entwicklung von asp .net und hatte ein ähnliches Problem.
Ich habe die Klasse als
partial
Klasse aktualisiert und es hat gut funktioniert.quelle
Ich habe Visual Studio neu gestartet und der Fehler war verschwunden!
quelle
Hier ist noch eine für die Bücher. Es scheint, dass dies passiert, wenn Sie mehr als eine Webanwendung von derselben Portnummer aus starten.
Grundsätzlich habe ich ein paar Zweige, an denen ich arbeite, ich habe einen Hauptzweig und einen Staging-Zweig und einen Release-Zweig. Als ich den Zweig zum Staging-Zweig wechselte, bemerkte ich, dass er dieselbe Portadressenkonfiguration verwendete, und entschied mich, dies 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 blockiert aus irgendeinem Grund die Konfiguration.
Durch einfaches Auswählen eines dritten nicht betroffenen Ports wurde dieses Problem behoben, da der Port dann einer neuen Verzeichniszuordnung zugeordnet wird (meine Zweige befinden sich auf der Festplatte anders). Ich habe dies bemerkt, weil ich versucht habe, den Typnamen zu ändern, auf den verwiesen wird
Global.asax
, der Typname jedoch auch nach dem Neustart des Servers unverändert blieb. Daher wurde der von mir geänderte Code in der IIS Express-Bereitstellung nicht berücksichtigt.Versuchen Sie daher, die IIS-Portnummer zu ändern, die derzeit zum Ausführen des Webprojekts verwendet wird, bevor Sie zu viel Schlaf verlieren.
quelle
Funktioniert gut für mich in VS 2015. Jetzt kann ich das globale Ereignis verwenden. Meine
Global.asax
Datei hat diese ZeileUnd ich mache eine Klassendatei
Global.asax.cs
, die sich in einemAppCode
Ordner befindet, der aussiehtIch hoffe das wird helfen
quelle
Überprüfen Sie die Build-Aktion von Global.asax.cs. Es sollte auf Kompilieren gesetzt sein.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Global.asax.cs und gehen Sie zu Eigenschaften. Legen Sie im Eigenschaftenbereich die Build-Aktion fest ( ohne zu debuggen).
Es scheint, dass VS 2008 die ASAS-Dateien (CS-Dateien) standardmäßig nicht immer korrekt hinzufügt.
quelle
Ich habe einen ähnlichen Fehler beim a
Tag als Kind (das erste Kind) der
Tag in meiner Web.config . Ich habe die Tags in meine web.config eingefügt, um die Vererbung der Konfiguration in einer Anwendung zu verhindern, die unter der Standardwebsite in IIS bereitgestellt wird.
quelle
In meiner Situation bezog es sich auf den Website- / Webanwendungstyp des Projekts. Wir sind kürzlich zu MVC gewechselt und mussten es in Webanwendung ändern.
Die Lösung war also einfach: Wählen Sie Ihre Website im Projektmappen-Explorer aus und entfernen Sie sie aus der Lösung. Klicken Sie dann mit der rechten Maustaste auf die Lösung und wählen Sie Hinzufügen -> Vorhandenes Projekt ( nicht Website ). Kompilieren Sie die Website neu.
quelle
Alter Beitrag, aber ich gehe diesen Fehler, wenn ich versuche, von einem Website-Projekt zu einem Webanwendungsprojekt zu konvertieren.
Folgen Sie den Anweisungen auf diesem Link . Ich habe immer noch den Fehler global.asax erhalten, aber alles, was ich getan habe, war, ihn zu löschen und wieder hinzuzufügen, indem ich mit der rechten Maustaste auf das Projekt in Visual Studio geklickt und die Option Neues Element hinzufügen ausgewählt habe. Fügen Sie die Datei global.asax hinzu und es hat funktioniert.
quelle
Nichts davon hat leider bei mir funktioniert. Das Update, das ich gefunden habe, war spezifischer für die Entwicklung, insbesondere für das Debuggen auf Ihrem lokalen Computer. Leider behebt es das Problem auch nicht so, wie ich es mir erhofft hatte, aber wenn Sie am Ende Ihres Witzes sind, könnte dies Sie 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 Anschrift,
wurde bereits ausgefüllt (ich habe IIS7, .NET 4.0). Ursprünglich wurde "Visual Studio Development Server verwenden" mit dem virtuellen Pfad "/" ausgewählt.
Was mich wirklich verwirrt, ist die Tatsache, dass nichts anderes funktioniert hat. Ich habe alle Vorschläge durchgesehen, die ich auf SO finden konnte, und nichts würde funktionieren. Das Seltsame ist, dass der Fehler (anscheinend ist es ein paar Monate her, seit ich ihn das letzte Mal gesehen habe) aufgetreten ist, als ich eine neue ASCX-Datei hinzugefügt habe, die einer vorhandenen ähnelt, die aus einem alten .net 2.0-Projekt (glaube ich) hinzugefügt wurde Dies würde eine benutzerdefinierte Benutzerverwaltung innerhalb der Anwendung ermöglichen. Es hat wunderbar lange funktioniert, bis ich versuchte, diese neue Datei hinzuzufügen. Nachdem ich es hinzugefügt und den Fehler gesehen hatte, habe ich alle Änderungen umgehend zurückgesetzt, aber der Global.ascx-Fehler wurde nicht behoben, nicht einmal das gesamte Projekt wurde weggeblasen und die neueste Version der Quellcodeverwaltung wurde wiederhergestellt.
quelle
Ich hatte meine Lösung von VS2003 auf VS2010 konvertiert und Probleme beim Konvertieren des Webanwendungsprojekts.
Ich hatte genau das gleiche Problem und keine der Antworten funktionierte für mich.
Was für mich funktioniert hat war:
Es scheint, dass die Probleme, die ich während der Konvertierung hatte, das Webanwendungsprojekt aus irgendeinem Grund aus dem Build entfernt hatten.
Hoffentlich hilft diese Antwort allen anderen, die das gleiche Problem haben ...
quelle
Wenn Sie ein Projekt neu erstellen oder ändern und Dateien von einem alten verschieben, überprüfen Sie den Inherit-Block Ihres globalen Projekts. In meinem Fall hieß das frühere Projekt / die frühere Lösung Intranet, und ich hatte es als Intranet neu erstellt, aber als ich über die Dateien ging, mochte es die Kleinbuchstaben (duh) nicht. Sehen Sie sich einfach die Namen der Dateien allgemein an.
quelle
Ändern Sie die GUID der Baugruppe. Dies behebt viele VIELE Probleme, die ich gefunden habe.
quelle
Ich hatte ähnliche Probleme, bei denen ich diesen Fehler bei einem Projekt erhielt.
Nachdem ich einige Zeit verbracht habe, vermute ich eine Funktion mit möglichen Fehlern in einer Klasse. Später, wenn ich diese bestimmte Funktion kommentiere, wird mein Problem gelöst.
Ich weiß nicht, warum Visual Studio mir diesen spezifischen Fehler beim Debuggen nicht gegeben hat. Dieser Fehler kann jedoch aufgrund einiger Fehler in der Klassendatei auftreten.
quelle
Diese Arbeit für mich: Das erste: Es scheint, dass, egal was Sie zu Visual Studio gesagt haben, die Idee immer in der Datei nachschaut: bin (für Web-App und natürlich in meinem Fall) Also, selbst wenn ich zu Visual Studio sagte Bei einem bestimmten Pfad zum Laden der Datei sucht die Idee nach dem falschen Pfad. Also ändere ich im: Build / Configuration Manager den Ausgabetyp in: Release (vorher bereinige ich die Lösung sogar manuell). Als die Datei .dll erstellt wurde, wechselte ich manuell in den Ordner "bin" unter dem Projekt / der Lösung Ordner. Hoffe das wird hilfreich sein !!
quelle
In meinem Fall habe ich es aufgrund meines Zielprozessors (x64) in x86 geändert, das Projekt bereinigt, VS neu gestartet (2012) und das Projekt neu erstellt. dann war es weg.
quelle
Als ich zuletzt auf dieses Problem gestoßen bin, habe ich alles versucht, 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 erneut aus meinem Code-Repository herunterzuladen. Danach hat alles wieder gut funktioniert.
Scheint eine extreme Lösung zu sein, dachte aber nur, ich würde sie hier aufnehmen, da sie in diesem Thread noch nicht erwähnt wurde.
(Beachten Sie, dass dieses Problem das andere Mal aufgetreten ist, als Global.asax von einer Komponente geerbt hat, die auf dem Hostcomputer registriert werden musste. Dies fehlte, daher habe ich dasselbe Problem.)
TL; DR; Wenn alle Antworten in diesem Thread für Sie nicht funktionieren, löschen Sie Ihre gesamte Codebasis und laden Sie sie erneut herunter!
quelle
Ich bin einige Male auf dieses Problem gestoßen und habe jeweils einen Computer neu erstellt oder auf einen neuen Computer umgestellt. Mein erster Schritt (neben dem Aktualisieren des Computers und der Installation von Visual Studio) besteht darin, meine Projekte von Git herunterzuziehen und zu testen.
Ich habe diesen Fehler jedes Mal festgestellt, weil ich versucht habe, auf meinen lokalen Code zuzugreifen, bevor ich ihn kompiliert habe. Sie sehen, ich habe Git- und Subversion-Setup, um meine bin / build-Ordner zu ignorieren. Nach einem Pull aus meinem Repository habe ich vergessen, einen Build auszuführen, der die erforderlichen Pakete aus Nuget abruft (da Git / SVN diese ebenfalls ignoriert) und das erstellt DLLs mussten tatsächlich meine App ausführen.
Ich bezweifle, dass dies die Probleme der meisten Menschen lösen wird, aber ich habe es nicht auf der Liste der möglichen Lösungen gesehen, also dachte ich, ich würde es hinzufügen.
quelle
In meinem Fall hatte ich Global.asax zu einem WCF-Projekt hinzugefügt, um damit zu experimentieren, aber beschlossen, es zu entfernen. Ich habe es aus dem Projektmappen-Explorer entfernt, aber da es sich noch im Ordner befand, fand die Pipeline es immer noch und verursachte diesen Fehler.
Ich habe Global.ASAX und GLobal.asax.cs aus dem Dateisystem entfernt und dadurch den Fehler behoben.
quelle
Diese Kastanie, die seit fast 20 Jahren im Entwicklungsspiel ist, hat mich in mehreren Projekten immer wieder geplagt.
Als ich heute das gleiche Problem gegen ein anderes Projekt hatte, habe ich mich entschlossen, weitere Untersuchungen durchzuführen, und ich glaube, dass dies mit dem Speicherort des Bin-Ordners zusammenhängt ... oder genauer gesagt mit dem Ausgabepfad des Bin-Ordners.
Für eine einfache dienstbasierte Webanwendung, die zum Ausführen / Debuggen über IIS konfiguriert ist, wurde der Ausgabepfad von bin \ debug in bin \ geändert , wodurch das Problem behoben wurde
Hoffe ernsthaft, dass dies hilft.
quelle
Ich war verwirrt von dem gleichen verdammten Problem. Ich habe versucht, und und zu entfernen
global.asax
(VS2010 vor dem Hinzufügen geschlossen). Das Projekt / die Lösung wurde bereinigt, auf Änderungen in der Webanwendungskonfiguration und andere Dinge überprüft, die für andere Personen hier in SO-Threads funktioniert hatten. Schließlich habe ich die Lösung bereinigt, die Ordner bin / obj gelöscht und alle laufenden VS2010-Entwicklungsserver gestoppt. Dann habe ich alle Änderungen zurückgesetzt und festgestellt, dass die Anwendung erneut ausgeführt wurde. Ich habe die gleichen Dinge überarbeitet und jetzt funktioniert es gut.Ist wieder passiert und diesmal hat diese Lösung für mich funktioniert.
quelle
Wechseln Sie unter Eigenschaften für Ihre Lösung zum Konfigurationsmanager. Stellen Sie dann sicher, dass alle Projekte erstellt werden, und dies wird kein Problem sein.
quelle
Ich musste Dateien von der Festplatte löschen (duplizieren), die nicht im Projekt enthalten waren. Es sieht so aus, als ob die Duplikate durch eine fehlgeschlagene Umbenennung verursacht wurden. Die Dateinamen waren unterschiedlich, aber der gleiche Code.
Nachdem ich alle oof. * -Dateien gelöscht hatte, konnte ich scannen.
quelle
In meinem Fall zeigte IISExpress auf denselben Port wie IIS, um das Problem zu lösen
Wenn Sie nach dem Port suchen, finden Sie ein
<site>...</site>
Tag, das Sie entfernen oder kommentieren müssenquelle
Ich hatte dieses Problem nur bei der Bereitstellung auf dem Produktserver. In meinen anderen Umgebungen funktioniert es ... Ich habe gerade Inhalte im Ordner bin gelöscht und dann erneut veröffentlicht, und danach funktioniert es.
quelle
Wenn Sie Visual Studio verwenden, versuchen Sie wahrscheinlich, die Anwendung im Release-Modus auszuführen und in den Debug-Modus zu ändern.
quelle
Ich habe erfolglos versucht, die Lösung neu zu erstellen und temporäre ASP.NET-Dateien zu löschen.
Nach dem Ausführen von IISRESET verschwand der Fehler.
Update : Ich hatte das gleiche Problem 1 Monat später wieder. Ich habe festgestellt, dass MyWebsite.DLL im Ordner bin vorhanden ist, jedoch nicht in temporären ASP.NET-Dateien (C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporäre ASP.NET-Dateien). Ich habe einige Dinge ausprobiert, die zu diesem Thema und "Parser-Fehlermeldung: Typ konnte nicht geladen werden" in Global.asax- Fragen vorgeschlagen wurden (ich habe meine eigene Antwort tatsächlich vergessen), aber der Fehler ist erst nach IISRESET wieder verschwunden
quelle
In meinem Fall VS 2017 verursachte die geringe Lösungslast dieses Problem. Ich habe es deaktiviert und VS neu gestartet, dann meine Lösung neu erstellt und das Problem behoben.
quelle
Ich wollte nur meine zwei Cent hinzufügen. Ich habe den gleichen Fehler erhalten und alle Vorschläge ohne Erfolg ausprobiert. Meine Situation ist wahrscheinlich anders?
Es stellte sich heraus, dass eine automatisch generierte "AssemblyInfo.cs" -Datei einige überflüssige Leerzeichen enthielt, die mich daran hinderten, die Web-App (per Debug) zu starten. So sah die Datei aus:
Nachdem ich die Leerzeichen in AssemblyCompany und AssemblyCopyright getötet hatte, 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
quelle