Ich muss eine klassische Asp-Site debuggen, die von IIS 7 (Windows 2008) bedient wird.
Wie kann ich das machen? Ich habe nur mit ASP.NET gearbeitet.
Aus einem MSDN-Blogeintrag: http://blogs.msdn.com/mikhailarkhipov/archive/2005/06/24/432308.aspx
So machen Sie das Debuggen von ASP:
- Aktivieren Sie das Debuggen von ASP auf dem Server. (Ich habe der asp-Erweiterung auch ein DEBUG-Verb hinzugefügt, bin mir aber nicht sicher, ob es erforderlich ist).
- Öffnen Sie den Klassiker ASP in VS 2005.
- Haltepunkt setzen
- Seite im Browser anzeigen oder ohne Debugging ausführen.
- Debuggen | An Prozess anhängen
- Suchen Sie den Arbeitsprozess IIS ASP (w3wp.exe auf IIS6), der x86 und Script verfügbar macht, und fügen Sie ihn als Script hinzu.
Von eddiegroves Kommentar unten:
Zu Schritt 1 in IIS7 - IIS> ASP> Compilierung> Debugging-Eigenschaften> Serverseitiges Debugging aktivieren
Ich weiß, das ist alt, aber ich dachte, ich würde antworten, um anderen zu helfen, da ich etwas anderes gesucht habe.
Sie können Visual Studio zum Debuggen von Classic ASP verwenden.
Wenn Sie eine lokale IIS-Kopie ausführen, hängen Sie einfach den Debugger an den Prozess w3wp.exe an, und Sie können Haltepunkte setzen, Variablen für Überwachungsfenster hinzufügen usw.
Wenn Sie mehr als eine Website haben, ist es hilfreich, jede in einem separaten Anwendungspool auszuführen, und Sie können einen anderen Prozess w3wp.exe im Prozess "Prozess anhängen" identifizieren.
Wählen Sie einfach "script" als Debugger-Typ. Wenn Sie IISExpress ausführen, ist der Prozess iisexpress.exe der richtige, um eine Verbindung herzustellen.
Ich habe festgestellt, dass eine nützliche Einstellung zum Aktivieren auf Serverebene unterASP> Compilation > Debugging-Eigenschaften > Fehler an Browser senden gefunden wird. Setzen Sie das auf "True".
Dies ist möglicherweise nicht unter allen Umständen angemessen (z. B. für eine Website, auf die über das Internet zugegriffen werden kann).
Klassisch gebaut ASP Das Debuggen ist ziemlich schlecht. Ich habe dies zusammengestellt ASP Include-Klasse, die mit Firebug + FirePHP funktioniert. Sie können damit Werte (einschließlich Zeichenfolgen, mehrdimensionalen Arrays und sogar mit json.asp erstellte Objekte) in der Firebug-Konsole protokollieren und die in ASP enthaltenen Sammlungsobjekte anzeigen, die hilfreich sein können (insbesondere bei Ajax, ohne das Sie keine Debug-Daten ausgeben können.) Unterbrechung der Json-Antwort.) Ladezeiten und Fehler des Ajax-Skripts werden automatisch protokolliert, um eine schnelle Anzeige zu ermöglichen.
https://github.com/dmeagor/ClassicASP-FirePHP
Freigegeben unter MIT Open Source-Lizenz
Ich verwende das folgende (was ich von irgendwo online bekam), um in eine Protokolldatei zu schreiben. Ich würde eine Methode bevorzugen, direkt in Firefox oder Chrome auf Console zu schreiben, aber das funktioniert für mich ziemlich gut.
HINWEIS: "Zeitstempel" ist eine benutzerdefinierte Funktion von mir. Sie können wahrscheinlich erraten, was es tut, und wahrscheinlich selbst rollen. ;-)
function error_log( message )
dim objFSO, objLog
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSO.OpenTextFile( "ASP_errors.log", 8, true)
objLog.WriteLine "[" & timestamp & "] VBS Message: " & message
objLog.close
set objLog = nothing
set objFSO = nothing
end function
So habe ich es herausgefunden:
Setzen Sie einen Stopp (Write Stop) an der Stelle, an der Sie den Debug-Punkt erreichen möchten. Führen Sie dann die Anwendung im Browser aus. Wenn die Ausführung stoppt, wird das Debug-Popup-Fenster mit der Frage "Debuggen mit Visual Studio" geöffnet (eine VS-Version muss installiert sein). Dann wird gefragt, ob der Prozess angehängt werden soll, und Sie können mit f10 und f11 schrittweise hin und her gehen. Sie können die Daten mit add watch anzeigen.