Je gestion des exceptions avec un HttpModule
d'une manière telle que celui-ci:Comment puis-je obtenir le code du sous-système IIS à partir d'une exception?
int errorCode = 500;
HttpApplication httpApp = (HttpApplication)sender;
try
{
if (httpApp.Server != null)
{
Exception ex;
for (ex = httpApp.Server.GetLastError(); ex != null; ex = ex.InnerException)
{
try
{
HttpException httpEx = ex as HttpException;
if (httpEx != null)
errorCode = httpEx.GetHttpCode();
// ... retrieve appropriate content based on errorCode
}
catch { }
}
}
Pour HTTP status codes (ex: 302, 404, 503, etc.) tout fonctionne très bien. Cependant, pour IIS status codes (ex: 401.5, 403.4, etc.), GetHttpCode
peut-il les récupérer car sa valeur de retour est un entier?
+1. J'aime vraiment cette ** idée de boucle ** en utilisant le ** InnerException **. Avez-vous déjà trouvé un peu de code pour extraire ces codes d'erreur IIS? – jp2code
FYI: Votre code a été négligé pour afficher un appel à 'Server.ClearError();' Si ce n'est pas le cas, vous devez l'ajouter. – jp2code