7
votes

ASP classique: Erreurs de capture

est-il possible de capturer les 500 erreurs d'ASP classique au niveau mondial? Peut-être quelque chose dans IIS. J'utilise II6 pour le moment. J'aime capturer le message d'erreur, puis le stocker dans la base de données. Je connais son possible dans les pages ASPX, mais je ne sais pas exactement comment vous faites dans l'ASP classique.

merci


1 commentaires

IIS7 a échoué à la demande de demande qui rapporte des erreurs classées classées non gérées, qui n'existaient pas si elle existe en 6.0. apprendre.iis.net/page .aspx / 266 / ...


4 Réponses :


16
votes

Oui, créez une page ASP qui enregistrera les détails d'erreur dans la base de données et définir cela pour être la page 500 gestionnaire dans IIS comme ci-dessous.

Utilisez l'objet Server.getlasterRor pour obtenir les détails de l'erreur dans votre script de gestionnaire.

Ce pourrait être une bonne idée de vous connecter à un fichier texte plutôt qu'à un DB dans votre gestionnaire 500 pour la résilience.

Définir personnalisé 500 gestionnaire dans IIS


8 commentaires

Ceci est exactement ce que je cherchais. Merci Jon. Je vais essayer maintenant.


Quand je réponse.write server.getlasterror () je n'obtiens rien. Des idées?


Oh je faisais quelque chose d'idiot. Je ne regardais pas les propriétés. Asperror.aspcode () Asperror.aspdescription () Asperror.Category () Asperror.column () Asperror.Description () Asperror.File () Asperror.Line () Asperror.Number () Asperror.Source ()


Une excellente réponse en effet comme @Dan a également dit - allumer bientôt une belle prime de graisse. :-)


J'aimerais pouvoir uppouver cette réponse deux fois; Une solution aussi élégamment sophistiquée à une plate-forme de développement logicielle généralement maladroite et ancienne. Il suffit de modifier des tonnes de code hérité pour inclure Psuedo essayer de prendre des blocs ...


Pour IIS7, vous devez configurer une nouvelle redirection d'erreurs dans "IIS-> Pages d'erreur" dans les paramètres de votre site Web. L'URL doit être relative au site racinaire non relatif à votre site (ex: "/Yoursite/errorpages/500.asp") Bien que vous la configuriez dans les paramètres de votre site Web.


J'ai essayé cette injonction avec la solution de @ Saille. Cependant, je n'ai pas pu produire le même résultat. Soit chez ASP -> Page d'erreur ou IIS -> Page d'erreur


Si cela ne fonctionne pas, définissez une page d'erreur personnalisée pour 500.100 erreurs. C'est l'erreur réelle ASP Classic Retours. (En outre, si votre site exécute plusieurs langues, vous pouvez avoir une page d'erreur différente pour ASP et autre chose. Handy si vous voulez que ASP enregistre des erreurs! Par exemple, 500.100 géré par Erreur. ASP , 500 géré par error.php .)



5
votes

La manipulation des erreurs dans l'ASP classique est une douleur complète. Vous pouvez attraper l'erreur où vous pensez que cela se produira à l'aide de sur erreur de reprise suivant code>, puis vérifiez le code d'erreur de la ligne de code suivante.

alternativement, vous pouvez numériser les journaux du serveur pour 500 les erreurs. ou configurer une page "500 erreurs" dans vos paramètres IIS. P>

On Error Resume Next
... do something...
If Err.Number <> 0 Then
... handle error
end if


0 commentaires

7
votes

Complétant la réponse de Jon, utilisez ce script pour écrire des erreurs dans un fichier journal: xxx


0 commentaires

-1
votes

Pour ajouter à la réponse de @jon Eastwood - Si vous utilisez IIS 7.5, alors au lieu de "erreurs personnalisées", vous rechercherez "Pages d'erreur .NET" par l'image ci-dessous:

 Entrez la description de l'image ici

Ceci s'applique à Windows Server 2008 et à d'autres nouveaux SKU Windows.


1 commentaires

ASP Classic <> ASP.NET