51 Stimmen

Warum bleibt der Debugger in meiner ASP.NET-Anwendung nicht an einem Breakpoint stehen?

Ich versuche, eine große ASP.NET-Anwendung zu debuggen.

Ich habe einen Haltepunkt in der ersten Zeile von Page_Load in Default.aspx.cs gesetzt.

Wenn ich die Anwendung starte, wird mein Haltepunkt kurzzeitig zu einem roten runden Umriss mit einem Ausrufungszeichen darin, wird dann wieder zu einem normalen Haltepunkt und die Anwendung startet, ohne jemals an meinem Haltepunkt anzuhalten.

MSDN sagt mir, dass dieses Symbol bedeutet "der Haltepunktspeicherort wurde nicht geladen". Also wie kann ich den Haltepunktspeicherort laden lassen? Es hat vor ein paar Wochen funktioniert. Welche Arten von Dingen könnten dazu führen, dass ein Haltepunkt "nicht geladen wird"?

Was kann ich tun, damit der Debugger wieder an meinen Haltepunkten anhält?

Anhang:

Ich kann immer noch nicht durch Drücken von F5 das Debuggen zum Laufen bringen, aber ich kann die Website starten und dann debug/attach-process ausführen, um in den Debugging-Modus zu gelangen. Wenn jemand weiß, warum dies funktionieren würde, während es beim Drücken von F5 nicht funktionieren würde (die Debugging-Buttons werden bei F5 nicht einmal angezeigt), sind alle Ideen willkommen.

0 Stimmen

In meinem Fall läuft dieselbe ASP.NET-App auf mehreren Domains und verwendet die Domain aus der Anfrage, um den Inhalt zu wählen, der bereitgestellt werden soll. Sie ist so eingestellt, dass sie auf dem lokalen IIS läuft und über die hosts-Datei die Domains zu 127.0.0.1 aufgelöst werden. Die App lief einwandfrei, aber der Debugger hielt nicht an den Haltepunkten an, bis ich die Projekteigenschaften > Web > Server > Projekt-URL auf die Domain gesetzt habe, die für die Anfrage verwendet wird. (Es enthielt eine weitere Domain, unter der die App verfügbar ist.)

3voto

Miha Markic Punkte 3098

Hast du in deiner web.config Datei gesetzt?

0 Stimmen

Ja, in meiner web.config habe ich:

2voto

Lloyd Conrade Punkte 91

Ich hatte ein ähnliches Problem mit Breakpoints, die nicht funktionierten, und gleichzeitig konnte ich in der IIS-Konsole die Konfiguration für mein Projekt nicht bearbeiten, d.h. die Schaltfläche Konfiguration bearbeiten war ausgegraut.

[Um die Schaltfläche Konfiguration bearbeiten zu finden: Start | Alle Programme | Verwaltungstools | Internetinformationsdienste, dann den erforderlichen Computer erweitern, Webseiten erweitern, Standardwebsite erweitern, Ihr Projekt suchen und mit der rechten Maustaste darauf klicken, Eigenschaften auswählen und dann den ASP.Net-Tab auswählen.]

Ich stellte fest, dass in IIS die ASP.Net-Version für mein Projekt auf 4.0.30319 eingestellt war. Sobald ich sie auf 2.0.50727 änderte, wurde die Schaltfläche Konfiguration bearbeiten verfügbar (anklickbar) und meine Breakpoints funktionierten wieder.

Ich habe auch festgestellt, dass es möglicherweise sinnvoll ist, die in IIS für "Standardwebsite" eingestellte ASP.Net-Version zu überprüfen [in der IIS-Konsole Webseiten erweitern, mit der rechten Maustaste auf Standardwebsite klicken und Eigenschaften auswählen, dann den ASP.Net-Tab auswählen], damit alle neuen Projekte, die in Visual Studio erstellt werden, die Einstellung der Standardwebsite übernehmen.

2voto

Mohamed Alikhan Punkte 1227

Immer nach Lösungskonfigurationen suchen, die als "Debug" eingestellt sind, um Fehler zu beheben. Nach der Veröffentlichung kann es sich auf Release-Konfiguration ändern.

1voto

Austin Punkte 11

Ich hatte kürzlich dieses Problem (WinXP, VS2003) und habe viele der oben genannten Lösungen ausprobiert, jedoch ohne Erfolg. Dann realisierte ich, dass mehrere Versionen der .Net-Laufzeit installiert waren. Ich rief also IIS 5.1 auf, suchte den richtigen virtuellen Ordner, ging in die Eigenschaften und dann auf den ASP.NET-Tab und änderte die ASP.NET-Version von 4.x auf 1.1, und es schien, als ob dies das Problem gelöst hätte. Es könnte sein, dass die Lösung dies ist, PLUS eine oder mehrere der oben genannten Dinge.

Außerdem bilden all diese oben genannten Dinge eine Art "Alles in einem", verschiedene Dinge, die man ausprobieren kann. Dies entspricht dem Prinzip, eine Menge Spaghetti-Nudeln an die Wand zu werfen und zu hoffen, dass einige davon kleben bleiben. Einige dieser "Lösungen" können auch andere Probleme in Ihrem Programm verursachen. Zum Beispiel kann der Vorschlag, AutoEventWireup="true" zu setzen, dazu führen, dass einige Ihrer Ereignisse zweimal ausgelöst werden!!! (siehe http://support.microsoft.com/kb/814745).

1voto

Jeremy Murray Punkte 756

In meinem Fall hatte das Problem damit zu tun, dass ich sowohl den vollständigen IIS (nicht Express) verwendet habe als auch ein Debug-Build erstellt wurde, der sowohl vollständige Debug-Symbole enthielt als auch Projekt-Eigenschaften, Build, Code optimieren überprüft wurden.

Unter Express funktioniert dies einwandfrei, aber unter dem vollen IIS funktioniert es nicht. Visual Studio hängt sich korrekt an den w3wp-Prozess an, lädt jedoch keine Symbole für die optimierte dll. In Visual Studio können Sie zu Debuggen, Windows, Module gehen, dann für die spezifische dll scrollen und prüfen, ob in der Spalte Symbolsstatus Laden von Symbolen übersprungen angezeigt wird. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Symbole laden, um es zum Funktionieren zu bringen.

Eine zusätzliche Einstellung, die dies beeinflussen kann, ist, ob Visual Studio nur den Benutzercode unter Debuggen, Optionen und Einstellungen, Debuggen, Allgemein, Nur mein Code aktivieren debuggen soll. Wenn die dlls optimiert sind, werden sie als nicht Benutzercode markiert, wenn sie unter dem vollen IIS ausgeführt werden. Wenn Nur mein Code aktiviert ist, werden alle Haltepunkte übersprungen. Sie können entweder VS so einstellen, dass nicht-Benutzercode debuggt wird, oder den Build so einstellen, dass keine Optimierung erfolgt, um es zu ermöglichen, dass Haltepunkte erreicht werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X