Je dois déboguer un site ASP classique géré par IIS 7 (Windows 2008).
Comment puis-je faire ceci? Je n'ai travaillé qu'avec ASP.NET.
À partir d'un article de blog MSDN: http://blogs.msdn.com/mikhailarkhipov/archive/2005/06/24/432308.aspx
Voici comment faire fonctionner le débogage ASP:
- Activez le débogage ASP sur le serveur. (J'ai également ajouté le verbe DEBUG à l'extension asp, mais je ne suis pas sûr que ce soit nécessaire).
- Ouvrez le classique ASP dans VS 2005.
- Définir un point d'arrêt.
- Voir la page dans le navigateur ou exécuter sans débogage.
- Débogage | Attacher au processus
- Localisez le processus de travail IIS ASP (w3wp.exe sur IIS6) qui expose x86 et le script, puis attachez-le en tant que script.
De eddiegroves commentez ci-dessous:
En ce qui concerne l'étape 1 dans IIS7 - IIS> ASP> Compilation> Propriétés de débogage> Activer le débogage côté serveur
Je réalise que c'est vieux, mais je pensais répondre pour aider les autres puisque je cherchais autre chose.
Vous pouvez utiliser Visual Studio pour déboguer Classic ASP.
Si vous exécutez une copie locale d'IIS, attachez simplement le débogueur au processus w3wp.exe et vous pourrez définir des points d'arrêt, ajouter des variables pour surveiller les fenêtres, etc.
Si vous avez plus d'un site Web, il est utile de les exécuter dans un pool d'applications distinct. Vous pourrez ainsi identifier différents processus w3wp.exe dans la fenêtre Attacher un processus.
Il suffit de choisir "script" comme type de débogueur. Si vous exécutez IISExpress, le processus iisexpress.exe est le processus correct à associer.
J'ai trouvé qu'un paramètre utile à activer se trouve au niveau du serveur sousASP> Compilation > Propriétés de débogage > Envoi d'erreurs au navigateur . Définissez cela sur "True".
Cela peut ne pas être approprié dans toutes les circonstances (par exemple pour un site accessible par Internet).
Le débogage ASP classique est plutôt médiocre. J'ai assemblé cette classe d'inclusion ASP qui fonctionne avec Firebug + FirePHP. Il vous permet de consigner des valeurs (y compris des chaînes, des tableaux multidimensionnels et même des objets créés avec json.asp) dans la console firebug et d'afficher les objets de collection intégrés d'ASP pouvant vous aider (notamment avec Ajax où vous ne pouvez pas générer de données de débogage sans interrompant la réponse json.) Les temps de chargement des scripts Ajax et les erreurs sont automatiquement enregistrés pour une visualisation rapide.
https://github.com/dmeagor/ClassicASP-FirePHP
Publié sous MIT licence open source
J'utilise ce qui suit (que j'ai obtenu quelque part en ligne) pour écrire dans un fichier journal. Je préférerais une méthode pour écrire directement sur la console dans Firefox ou Chrome, mais cela fonctionne plutôt bien pour moi.
Remarque: "timestamp" est une fonction personnalisée de la mienne. Vous pouvez probablement deviner ce que cela fait et probablement rouler le vôtre. ;-)
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
Voici comment je l'ai compris:
Placez un arrêt (arrêt en écriture) à l’endroit où vous souhaitez atteindre le point de débogage. Ensuite, exécutez l'application sur le navigateur. Lorsque l’exécution s’arrête, elle ouvre une fenêtre de débogage demandant de déboguer avec Visual studio (une version VS doit être installée). Ensuite, il vous demandera de joindre le processus et vous pourrez utiliser les touches f10, f11 pour faire un pas en avant. Vous pouvez voir les données en utilisant add watch.