2010-02-23 5 views
1

En web.config:Comment intercepter des exceptions à l'aide de customErrors?

<customErrors mode="RemoteOnly" defaultRedirect="~/Errors.aspx"> 
    <error statusCode="404" redirect="~/Error.aspx?code=404"/>  
</customErrors> 

dans le code de la page derrière:

throw new HttpException(404, "404 Not Found"); 

Sur cette ligne, les pauses studio visuel avec une erreur:

System.Web.HttpException was unhandled by user code

Où dois-je attraper cette erreur ?

Répondre

2

Si l'IDE de Visual Studio est cassé sur la ligne de lancement, alors vous êtes en mode débogage. En mode débogage, les exceptions entraînent l'arrêt de l'exécution. Essayez d'exécuter le site Web (CTRL + F5) au lieu de déboguer le site Web (F5). Toutefois, notez que vous obtiendrez alors la page d'exception ASP.NET jaune, en tant que vos balises customErrors "RemoteOnly", ce qui signifie que la page personnalisée ne sera affichée qu'aux demandes distantes. Votre requête n'est pas distante, car vous êtes sur la machine qui sert la page.

Pour voir les customErrors en action, changer la balise:

<customErrors mode="On" defaultRedirect="~/Errors.aspx"> 
    <error statusCode="404" redirect="~/Error.aspx?code=404"/>  
</customErrors> 

et exécutez votre site Web en utilisant CTRL + F5.

+0

Ceci, c'est bien. une autre question avant d'accepter cette réponse: est-il possible de passer le paramètre de chaîne "404 Not Found" à la page de redirection? – mariki

+0

Pas facilement. Si c'est votre condition, je contournerais customErrors et coderais mon propre gestionnaire d'exception dans Application_Error dans global.asax. –

+0

si j'utilise Application_Error je devrais désactiver les customErrors? – mariki

Questions connexes