Recommandé: méthode ASP.NET pour obtenir une adresse IP et MAC La méthode d'obtention de l'adresse IP du serveur est simple et pratique pour utiliser la méthode DNS, comme suit: private void ButtonIP_Click (Object Sender, System.Eventargs e) {System m.net.ipaddress [] AddressList = dns.GethostByName (DNS
7.4.4 Utilisation de la page d'erreur IIS
Ce qui est lié au processus de gestion des erreurs ASP est de fournir à IIS des pages d'erreur personnalisables. En fait, cette fonctionnalité se trouve également dans IIS 4.0. Mais le nouvel objet intégré ASP Asperror est plus facile à utiliser et offre des fonctionnalités plus puissantes.
Dans le chapitre 4, lorsque nous regardons les méthodes Server.Exécute et Server.Transfer, nous avons déjà expliqué comment créer une page d'erreur personnalisée. Nous avons également discuté et utilisé l'objet Asperror, mais cette méthode est soumise à certaines limitations. Dans cette section, nous présenterons comment combiner une page d'erreur personnalisée avec un objet Asperror pour créer une meilleure façon de gérer les erreurs ASP.
Nous pouvons utiliser VBScript pour vérifier le contenu de l'objet Asperror, créant ainsi une page d'erreur personnalisée. Créez une chaîne contenant des informations complètes sur le contenu d'erreur et écrivez-les dans un fichier journal sur le disque du serveur. Cependant, il n'est pas possible de concevoir une page Web pour que le visiteur ne soit pas disponible que la page Web n'est pas disponible. Il devrait permettre aux visiteurs de choisir de recharger la page Web précédente ou de retourner à la page d'accueil, afin qu'ils ne savent pas qu'une erreur s'est produite.
Bien que nous utilisons VBScript pour créer cette page Web, certaines des fonctionnalités qu'il utilise sont également applicables à JScript, et il est également plus facile de convertir les deux langages de script.
Les exemples de fichiers pour ce chapitre et d'autres chapitres de ce livre peuvent être téléchargés à partir du site http://www.wrox.com.
1. Configuration des pages d'erreur personnalisées
Avant de pouvoir utiliser une page d'erreur personnalisée, vous devez créer les paramètres correspondants dans Internet Services Manager (voir le chapitre 4 pour la configuration des méthodes). Chargez l'exemple de fichier dans le répertoire wwwroot de l'ordinateur, ouvrez la boîte de dialogue Propriétés du sous-répertoire Chapter07, dans l'onglet Erreurs personnalisés, faites défiler la liste et sélectionnez l'erreur HTTP 500: 100 Entrée, cliquez sur le bouton Modifier les propriétés et tapez l'url de la page d'erreur personnalisée CUSTUM_ERROR.ASP
Maintenant, lorsqu'une erreur ASP se produit sur la page du sous-répertoire Chapter07, la page d'erreur personnalisée sera ouverte.
2. Utilisez la page d'erreur personnalisée
Ouvrez le répertoire Chapter07 dans votre navigateur et sélectionnez le lien vers une page d'erreur personnalisée. Cette page affiche une série de boutons pour générer différents types d'erreurs. Cliquez sur le bouton marqué à charger une page avec une erreur de syntaxe
Cela chargera une page simple appelée syntax_error.asp. Cependant, cette page ne peut pas être vue car cette page contient une erreur de syntaxe. ASP termine la compilation / exécution de cette page et transfère l'exécution à la page d'erreur personnalisée. Cette page affiche les détails de l'erreur et de deux boutons, qui sont utilisés pour revenir à la page précédente (menu principal) ou pour revenir à la page d'accueil par défaut du site Web.
Cette page ajoute également le rapport d'erreur dans le fichier journal nommé personnalisé_error.log dans le dossier du disque du serveur C: / Temp. Il peut être ouvert et visualisé dans l'éditeur de fichiers. Le fichier journal a enregistré plusieurs erreurs.
Si vous recevez un message dans la page, indiquant que le fichier journal ne peut pas être écrit, cela peut être dû au fait que le compte iusr_machinename (nom iusr_computer) n'a pas l'autorisation d'accéder au répertoire C: / Temp. Lors du test de cette page, le compte IUSR_MACHINENAME doit être donné tout le contrôle de ce répertoire, ou le code de programme de la page Custom_error.asp doit être modifié pour pointer un dossier où IUSR a un contrôle total.
La seule raison pour laquelle le message d'erreur apparaît dans la page est que dans la page Cause_error.asp, nous avons sélectionné la case à cocher correspondante. Si vous désactivez cette option et cliquez à nouveau sur le bouton, vous ne verrez pas les détails de l'erreur, mais le message d'erreur est toujours enregistré dans le fichier journal d'erreur personnalisé_error.log sur le disque du serveur.
La case à cocher Display Debugging Informations offre des pages d'erreur personnalisées (plutôt que des fichiers journaux) plus d'informations et aide à déboguer les pages qui utilisent des valeurs de collecte d'objets intégrées ASP.
Ce problème sera discuté plus loin dans la section suivante de ce chapitre, et vous pouvez également en savoir plus sur d'autres types d'informations d'erreur fournies par d'autres boutons sur la page de cause d'une erreur. Notez que certains boutons peuvent fournir plus d'informations que d'autres. En particulier, seul le dernier bouton donne la valeur du code d'erreur ASP (voici ASP 0177).
(1) Fonctions de cause une page d'erreur
Comme pour les pages d'exemples discutées précédemment, les pages qui provoquent l'erreur utilisent la même technique, en utilisant <form> pour soumettre la valeur à la même page. Cliquez ensuite sur le bouton Soumettre dans la fenêtre ASP du programme ASP, puis exécutez la partie correspondante du code. Vérifiez également si les deux cases sur la page sont sélectionnées. Si c'est le cas, le programme définit d'abord une ou deux variables de niveau de session pour l'indiquer.
<%
'Voyez si nous affichons des informations d'erreur et de débogage
«Définir les variables de session pour récupérer dans la page d'erreur personnalisée
Si Len (request.form (chkshowerror)) alors
Session (doucheror) = Oui
Autre
Session (doucheror) =
Terminer si
Si Len (request.form (chkshowdebug)) alors
Session (showdebug) = oui
Autre
Session (showdebug) =
Terminer si
...
%>
En raison de l'utilisation de Server.Transfer, lorsqu'une erreur se produit, l'environnement ASP entier de la page Web en cours d'exécution est transmis à la page d'erreur personnalisée par IIS. Cependant, la valeur de la variable de script n'est pas transmise à la page d'erreur personnalisée, de sorte que la variable de session doit être utilisée, ou la valeur doit être ajoutée à la collection de demande.form ou de request.Querystring afin de passer la valeur à la page d'erreur personnalisée.
Après avoir défini la variable de session, le programme continue d'afficher quel bouton a été cliqué. Chaque type d'erreur (sauf le premier type) est généré en exécutant le code ASP correspondant, et le premier type d'erreur nécessite d'appeler une autre page.
...
'Recherchez une commande envoyée à partir des boutons de section de formulaire
Si Len (request.form (cmdsyntax)) alors
Réponse.
Réponse.redirect syntax_error.asp
Terminer si
Si Len (request.form (cmdParamType)) alors
intdate = erreur
intday = jour (intdate)
Terminer si
Si Len (request.form (cmdArray)) alors
Dim Arrthis (3)
Arrthis (4) = provoque une erreur
Terminer si
Si Len (request.form (cmdfile)) alors
SET OBJFSO = Server.CreateObject (Scripting.FileSystemObject)
Set objTStream = objfso.opentextfile (DOED_NOT_EXIST.TXT)
Terminer si
Si Len (request.form (cmdpageCount)) alors
Définir ObjpageCount = Server.CreateObject (MSWC.PageCounter)
objpageCount.WrongProperty = 10
Terminer si
Si Len (request.form (cmdObject)) alors
Définir objThis = server.createObject (netNoT.exist)
Terminer si
Partager: a finalement trouvé une solution pour franchir la limite de l'indice ASP Hier, mon site Web de film a eu un problème lors de la génération de pages de contenu statiques. Il a été invité à franchir la ligne avec l'indice. Je ne l'avais jamais rencontré auparavant, donc je ne savais pas ce que c'était, alors j'ai cherché des réponses en ligne, mais c'était vraiment difficile à trouver. J'ai trouvé beaucoup de choses mais je ne pouvais pas résoudre le problème fondamental.