50 Stimmen

Warum würde der Debugger nicht an einem Haltepunkt in meiner ASP.NET-Anwendung anhalten?

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 einer roten runden Umrandung mit einem Ausrufezeichen 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 Haltepunktort wurde nicht geladen". Also, wie kann ich den Haltepunktort laden lassen? Es hat vor ein paar Wochen funktioniert. Was könnte dazu führen, dass ein Haltepunkt "nicht geladen" wird?

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

Zusatz:

Ich kann immer noch nicht durch Drücken von F5 das Debugging zum Laufen bringen, aber ich kann die Website starten, dann debuggen/an Prozess anhängen, um in den Debugging-Modus zu gelangen. Falls jemand weiß, warum das funktioniert, aber wenn ich F5 drücke es nicht funktioniert (die Debugging-Schaltflächen erscheinen nicht einmal bei F5), 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. Es ist so eingestellt, dass es auf dem lokalen IIS läuft und über die hosts-Datei die Domains auf 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 andere Domain, unter der die App verfügbar ist.)

3voto

Miha Markic Punkte 3098

Hast du in deiner web.config festgelegt?

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, die Standardwebsite erweitern, das benötigte Projekt lokalisieren und mit der rechten Maustaste darauf klicken, Eigenschaften auswählen und dann auf den ASP.Net-Tab klicken.]

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

Ich habe auch erkannt, dass es sich lohnen könnte, die in IIS für die "Standardwebsite" festgelegte ASP.Net-Version zu überprüfen [in der IIS-Konsole Webseiten erweitern, mit der rechten Maustaste auf Standardwebsite klicken und dann Eigenschaften und anschließend den ASP.Net-Tab auswählen], damit neue Projekte, die in Visual Studio erstellt werden, die Einstellung der Standardwebsite übernehmen.

2voto

Mohamed Alikhan Punkte 1227

Suchen Sie immer nach Lösungskonfigurationen, die auf "Debug" eingestellt sind, um Debugging durchzuführen. Es kann nach der Veröffentlichung zur Release-Konfiguration geändert werden.

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 habe ich festgestellt, dass mehrere Versionen der .Net-Runtime installiert waren. Also habe ich IIS 5.1 geöffnet, den entsprechenden virtuellen Ordner gefunden, bin in die Eigenschaften gegangen und dann auf den ASP.NET-Tab geklickt. Dort habe ich die ASP.NET-Version von 4.? auf 1.1 geändert, und es schien, als ob das 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 stellen alle oben genannten Dinge eine "Küchenspüle" verschiedener Dinge dar, die man ausprobieren kann. Dies ist wie wenn man einen Haufen Spaghetti-Nudeln an die Wand wirft und hofft, dass ein paar von ihnen kleben bleiben. Und einige dieser "Lösungen" können 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 hing das Problem damit zusammen, dass ich sowohl vollständiges IIS (nicht Express) verwendete als auch ein Debug-Build, in dem sowohl vollständige Debug-Symbole enthalten waren als auch Projekt Eigenschaften, Build, Optimize code aktiviert waren.

Unter Express funktioniert das einwandfrei, aber unter vollem IIS funktioniert das nicht. Visual Studio verbindet sich ordnungsgemäß mit dem w3wp-Prozess, lädt jedoch keine Symbole für die optimierte dll. In Visual Studio können Sie zu Debug, Windows, Module gehen und dann nach der spezifischen dll suchen und überprüfen, ob in der Spalte Symbol Status Laden der Symbole übersprungen. angezeigt wird. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Symbole laden, um es zum Laufen zu bringen.

Eine zusätzliche Einstellung, die dies beeinflussen kann, ist, wenn Visual Studio nur den Benutzercode unter Debug, Optionen und Einstellungen, Debugging, Allgemein, Nur mein Code aktivieren debuggen. Wenn optimiert, werden die dlls beim Ausführen unter vollem IIS als nicht Benutzercode markiert, daher werden bei aktiviertem Just My Code alle Breakpoints darin übersprungen. Sie können entweder VS so einstellen, dass nicht-Benutzercode debuggt wird, oder den Build so einstellen, dass keine Optimierung erfolgt, um Breakpoints zu ermöglichen.

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