Recommandé: Utilisez ASP pour construire un moteur de recherche privé De nombreux amateurs d'Internet accumulent leur cerveau pour rendre les fonctions de leur site Web plus complètes lors de la création de leur propre page d'accueil personnelle. Ici, l'auteur présente une méthode pour utiliser ASP pour construire votre propre moteur de recherche. L'idée de base est d'utiliser des formulaires pour stocker les mots clés de recherche soumis par les utilisateurs dans des variables.
7.5.1 Technologie générale de débogageDans le chapitre 2, vous avez vu comment utiliser la méthode Response.Write et la collection de requêtes pour afficher le contenu de la collection. Si le code veut utiliser la valeur de la demande, la première chose à faire est de s'assurer que la valeur requise existe. Le problème facile est que le nom de contrôle HTML dans la page Web <form> est mal orthographié ou modifié, ou que le mauvais client apparaît lors de la création d'une chaîne de requête attachée à l'URL.
1. Afficher divers contenus de collection
Lorsque le programme essaie d'exécuter avec la valeur fournis par l'utilisateur, il peut ne pas obtenir le résultat souhaité, ou rien n'est obtenu. N'oubliez pas que request.form (thisControl) ne provoque pas d'erreur lorsque vous référez une valeur qui n'existe pas dans une collection d'objets de demande (par exemple, si vous n'avez pas de contrôle nommé ceControl sur le formulaire. Le résultat ne peut obtenir qu'une chaîne vide.
Si vous créez une page pour afficher le contenu de toutes les collections d'objets de demande, le contenu des objets de session et d'application et les collections statiques, vous pouvez y accéder à l'aide de server.exécute. Le travail doit être fait pour ajouter la ligne de programme suivante à la page Web ASP pour afficher l'intégralité du contenu de la collection. Bien sûr, selon l'emplacement où le fichier est stocké sur le serveur, le chemin correspondant doit être défini pour le fichier.
<% Server.execute /path_to_file/debug_request.asp%>
C'est un excellent moyen de garantir que toute valeur que nous souhaitons trouver dans la demande, la session et les collections d'applications existent et contiennent la valeur appropriée. Un fichier correspondant est fourni dans l'exemple de sous-répertoire Chapter07 de fichier de ce livre, nommé Debug_request.asp. Il s'agit essentiellement d'une combinaison de la page Web show_request.asp pour le chapitre 2 et les pages Web show_application.asp et show_session.asp pour le chapitre 3, mais supprime un code de programme HTML. Il itère simplement sur la collection et met les valeurs dans la page actuelle.
Cette page peut être affichée en exécutant l'instance de page d'erreur personnalisée. Cet exemple a été vu plus tôt dans ce chapitre. Lorsque vous l'ouvrez, veuillez sélectionner la case à cocher Display Debugging Informations ou ouvrez-la directement dans la page Web du menu principal dans le répertoire Chapter07.
2. Afficher les valeurs intermédiaires
La deuxième façon de visualiser la situation en cours d'exécution dans une page Web est d'afficher la valeur de la variable lorsque la page Web s'exécute. Cette technologie traditionnelle ne peut pas être rejetée lorsque vous savez à peu près d'où vient l'erreur et de quelle variable fonctionne. Cependant, en raison des modifications de la méthode de tampon Web IIS 5.0, il est difficile d'utiliser cette technologie.
Dans les versions précédentes d'ASP et IIS, la mise en mémoire tampon de la page a été désactivée par défaut, et presque personne n'a pensé à allumer le tampon (ouvert avec Response.Buffer = true), à moins qu'ils ne souhaitent utiliser Response.Redirect pour terminer la redirection de la page Web (voir chapitre 2). Lors de la réponse à plusieurs demandes, la mise en mémoire tampon réduit le nombre de commutations entre les pages Web, améliorant ainsi l'efficacité de l'IIS.
Cependant, lorsqu'une erreur d'exécution se produit qui arrête l'exécution, IIS appelle automatiquement la méthode Response.Clear, puis appelle Server.Exécute pour charger la page d'erreur personnalisée, de sorte que toute sortie écrite dans la page Web est perdue. La solution consiste à ajouter temporairement la ligne de programme suivante:
<% Réponse.buffer = false%>
Cette ligne de programme est placée en haut de la page après la directive <@Language ...>, et toute sortie de débogage générée par l'instruction Response.Write apparaîtra en haut de la page d'erreur personnalisée. N'oubliez pas de le supprimer après avoir terminé le débogage de la page Web.
Cette méthode est parfois utile pour forcer le programme à exécuter un point d'erreur, puis à afficher des valeurs de variables suspectes. Ajoutez simplement l'instruction ON ERROR REPOS SUIVANT PROCHAINEMENT le début de la page Web, puis vous pouvez accéder à l'objet ERR (dans VBScript) et afficher le numéro d'erreur, la source d'erreur et la description.
3. Vérifiez les valeurs d'attribut des composants
Si le composant utilisé a des propriétés définies dans le code de script ASP, une fois la configuration terminée, et avant et une fois la méthode du composant appelé, l'erreur peut être suivie en affichant toutes les propriétés (ou simplement des propriétés suspectes). Lorsqu'une méthode est exécutée, on peut constater que la valeur de la propriété a été accidentellement modifiée par le composant, peut-être intentionnel, ou en raison d'un défaut dans le composant. Ne faites aucune hypothèse sans vérifier vous-même le code réel.
7.5.2 Microsoft Script Debugger
Lorsque vous développez des applications plus complexes qui traitent des tâches réelles, un outil plus puissant est souvent nécessaire pour le débogage. Microsoft Script Debugger est un outil de débogage qui permet des scripts de débogage s'exécuter sur les clients et les serveurs. Il peut être utilisé pour n'importe quel langage de script compatible ActiveX (y compris VBScript et JScript), et peut également être utilisé pour déboguer les appels vers les applications Java, les haricots Java et les composants ActiveX.
Avant d'étudier cet outil, expliquez brièvement certains problèmes. Comme mentionné précédemment, une application ASP se compose de deux types de scripts, l'un est un script client et l'autre est un script de serveur. Les scripts du client sont généralement composés d'instructions de script VBScript ou JScript qui apparaissent dans la page HTML lorsqu'ils arrivent au client et y sont exécutés, peut-être lorsque le document est chargé ou en réponse à certains événements. Les scripts côté serveur sont généralement également composés d'instructions VBScript ou JScript. Lorsque le navigateur demande une page Web, le script côté serveur est exécuté par IIS. Dans la discussion suivante, la méthode de débogage de script côté serveur sera discutée. Cependant, de nombreuses techniques discutées peuvent également être utilisées pour le débogage du script client.
1. Déboggage côté serveur
Pour déboguer les scripts côté serveur, exécutez le débogueur de script sur un ordinateur exécutant IIS, cependant, le débogage doit être activé avant d'utiliser le débogueur de script. Pour optimiser les performances, les applications basées sur l'ASP désactivent le débogage par défaut.
Faites attention de ne pas exciter le débogage des applications productives (c'est-à-dire des sites Web publics actifs et utilisés par d'autres). Cela ralentira l'ensemble de l'application et les erreurs peuvent entraîner l'arrêt de la page Web indéterminé.
Le débogage ne peut être défini que pour les applications virtuelles et l'ensemble du site Web. Pour activer le débogage, ouvrez la boîte de dialogue Propriétés de l'application ou du site, dans l'onglet Directory Home, cliquez sur le bouton de configuration, dans l'onglet Débogage de l'application de la boîte de dialogue de configuration de l'application, sélectionnez Activer le débogueur de script côté serveur ASP et préparez-vous à déboguer notre application ci-dessous.
Remarque La boîte de dialogue de configuration de l'application contient une case à cocher qui permet le débogage du script client. Ceci n'est pas mis en œuvre dans IIS 5.0 et n'est marqué que comme étant réservé à une utilisation future dans la documentation. Si la page d'erreur personnalisée 500-100.asp n'est pas disponible, la section des messages d'erreur de script contient le texte.
(1) Traiter les scripts du serveur
Contrairement aux scripts clients, les scripts d'application basés sur l'ASP ne sont pas motivés par des événements. Lorsque le client demande une page Web à partir du serveur, le serveur lit le contenu de la page Web et traite tous les scripts du serveur (c'est-à-dire tout dans les segments <% ...%> et <script runat = server> </cript>), ainsi que le contenu du segment de script en ligne dans le texte HTML, comme:
La valve du résultat est: <% = strresult%>
Diagramme de case d'affichage de flux de processus
Lorsque IIS charge une page Web, tous les scripts de la page ASP seront traités. Avant que toute sortie ne soit envoyée au client, l'ASP et le moteur de script peuvent attraper des erreurs de syntaxe et d'exécution (sauf si vous éteignez la méthode de tampon ou appelez la méthode Response.flush).
(2) Aide fournie par le débogueur du script
Lors de l'activation du débogage du script, si une erreur se produit, vous pouvez voir une boîte de dialogue décrivant l'erreur du code ASP sur l'écran du serveur. Cliquez sur OK, puis appelez une copie en lecture seule de la page Web ASP actuelle. Le débogueur de script est ouvert. La ligne qui apparaît dans l'erreur est indiquée par la flèche.
Ici, l'erreur se produit en raison de l'erreur de nom de la méthode de l'objet de compteur de page, qui doit être PageHit au lieu de DopageHit. Dans le même temps, le débogueur de script a trouvé une erreur et a terminé l'exécution de la page. Les boutons de la barre d'outils sont utilisés pour poursuivre le programme, le programme en une seule étape en cours d'exécution ou terminent l'exécution de la page.
Le bouton à l'extrême droite de la barre d'outils ouvre la fenêtre immédiate du débogueur de script, qui peut être utilisée pour interagir avec la page, et il est très susceptible de trouver un endroit où l'erreur se produit. Par exemple, les valeurs variables ou les propriétés des composants peuvent être interrogées ou définies, les fonctions et sous-programmes internes, les fonctions personnalisées et les sous-programmes et les méthodes d'objets qui ont été créées, etc. peuvent être exécutées. Dans la figure, la méthode PageHit du composant de compteur de page est appelée, et la propriété Hits est ensuite interrogé pour obtenir la valeur à ce stade du script en cours d'exécution.
Pour comprendre pourquoi les débuggeurs de script ne doivent pas être utilisés sur les sites Web publics, vous pouvez ouvrir une page contenant des erreurs côté serveur du client. Dans ce cas, la boîte de dialogue du message d'erreur apparaît sur le serveur et le débogueur de script est également ouvert sur le serveur. Sur le client, la page n'est pas chargée tant que le débogueur de script en cours d'exécution sur le serveur n'est fermé.
(3) Démarrez et utilisez le débogueur
Après l'activation du débogage du script, le débogueur de script se produira automatiquement lorsqu'une erreur se produit dans la page Web de l'application virtuelle.
Partager: ASP Exemple: production de jeux de coopération de mots Ceci est un jeu sur le codage des mots, écrit en ASP, VBScript et JavaScript. Aucun problème majeur n'a été trouvé sous test sous Win98 OEM2, PWS et IE5. Méthode d'utilisation: Méthode 1: Par exemple, le répertoire de votre service 3W est C: Inetpubwwwroot.