web-dev-qa-db-fra.com

Comment déboguer un ASP classique?

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.

25
Ronnie Overby

À 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:

  1. 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). 
  2. Ouvrez le classique ASP dans VS 2005. 
  3. Définir un point d'arrêt. 
  4. Voir la page dans le navigateur ou exécuter sans débogage. 
  5. Débogage | Attacher au processus 
  6. 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 

40
Alex Black

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.

6
LarryBud

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).

3
Kenny Evitt

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

2
David Meagor

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
1
Stephen R

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.

1
M A P
  1. Hébergez votre site sur le serveur IIS.
  2. activer le débogueur distant sur le serveur IIS. ( suivez ce tutoriel )
  3. importer le code source dans visual studio.
  4. installer un outil de débogage distant à partir de ici
  5. Dans l'outil de débogage distant, sélectionnez outils-> options -> aucune authentification pour tous les utilisateurs.
  6. Accédez à visual studio et attachez-vous au processus w3wp.exe.
  7. si vous ne pouvez pas voir le processus (w3wp.exe). Ouvrez le lien du site Web dans le navigateur et sélectionnez Afficher pour tous les utilisateurs. Maintenant, vous pourrez voir le processus et l’attacher.
  8. N'oubliez pas de mettre un débogueur dans l'application :-)
0
hari