Ich habe Remote-Debugging auf einem Windows 2003-Server installiert, auf den über das Internet zugegriffen wird. Ich habe VS 2008 SP1 auf meiner XP-Dev-Box installiert.
Ich habe die Site auf dem Remote-Server gestartet und an alle w3wp.exe-Prozesse auf dem Remote-Server angehängt. Ich habe festgestellt, dass die .dll die Symboldatei nicht geladen hat. Wenn ich versuche, die entsprechende .pdb-Datei von meinem lokalen Rechner zu laden, heißt es, dass die Datei nicht übereinstimmt. Ich habe "Erfordern, dass Quelldateien genau mit der ursprünglichen Version übereinstimmen" deaktiviert. Die Assembly auf dem Remote-Server ist dieselbe wie auf meiner Dev-Box. Die Site und die DLL wurden von dev boc auf den Remote-Server kopiert und der Code hat sich seitdem nicht geändert. Also ich weiß .dll und .pdb Dateien sollten übereinstimmen oder zumindest muss ich den Abgleich erzwingen.
Fragen:
Wie bekomme ich die .pdb-Datei zum Laden? Ich weiß, Haltepunkte werden nicht ausgelöst, wenn die Symboldatei nicht geladen ist. Ich habe festgestellt, dass die .pdb-Datei nicht im Ordner "Temporäre ASP.NET-Dateien" auf dem Remote-Server vorhanden ist. Die .dll tut das.
Was ist die richtige Reihenfolge, um das Debuggen remote in VS zu starten? (Remote-Setup ist fertig und ich kann entfernte Prozesse sehen). In VS habe ich die Startseite als URL der Remote-Site. Ich beginne ohne zu debuggen und dann an w3wp.exe (s) auf der Fernbedienung anzuhängen. Ist das alles?
Führen Sie eine Website oder eine Webanwendung aus (ist es ein kompiliertes Projekt, für das Sie die DLL bereitstellen oder eine Sammlung von aspx- und aspx.cs-Dateien, die Sie bereitstellen)?
Wenn es sich um eine Webanwendung handelt, haben Sie einen Releasebuild oder einen Debugbuild bereitgestellt? Sie können keine Haltepunkte setzen, wenn Sie einen Release-Build "debuggen", da der Code ziemlich stark optimiert ist.
Haben Sie "debug = true" im Kompilierabschnitt web.config eingestellt? Wenn nicht, wird das Debuggen wieder schwierig.
Schließlich sind die Schritte, die ich beim Remote-Debugging verwende:
Wenn die Haltepunkte hohl sind (dünne rote Kreise statt gefüllte Festplatten), überprüfe ich oft das Stack-Fenster in VS, um zu sehen, was geladen wurde und was nicht.