2009-04-20 8 views
2

Sur un site que je cours, 404 erreurs et 500 erreurs sont mappées pour rediriger vers une page d'erreur personnalisée pour les utilisateurs finaux; en utilisant le code suivant dans mon web.config:Gestion des erreurs personnalisées pour une page spécifique dans ASP.Net

... 
... 

<system.web> 
    <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly"> 

    <error statusCode="404" redirect="/404/default.aspx" /> 

    </customErrors> 

    ... 
    ... 

Cependant, j'ai une page spécifique que je ne veux pas redirigés; une page de contrôle de santé pour s'assurer que le site est 100% opérationnel. J'ai essayé de définir un lieu spécifique gestionnaire d'erreur personnalisé à l'aide du code ci-dessous dans le mon web.config:

... 
... 

    </system.web> 
    <location path="health.aspx"> 
    <system.web> 
     <customErrors defaultRedirect="" mode="RemoteOnly"></customErrors> 
    </system.web> 
    </location> 
... 
... 

Cependant, il ne semble pas fonctionner. Lorsque je renommer health.aspx à quelque chose comme badhealth.aspx, puis faire une demande, je m'attends à obtenir une erreur générique 404 via la page Yellow Screen of Death. De même, en changeant intentionnellement le code pour lancer une erreur, je devrais obtenir une erreur de 500 via la page YSOD. Dans les deux cas, je finis par être redirigé vers notre page personnalisée 404, puis obtenir un YSOD. Pensées?

Toute aide est grandement appréciée.

Merci à tous, - Frank

Répondre

1

Nevermind nous avons résolu la question. Il semble que vous ayez une directive customError spécifique à l'emplacement; Si vous laissez "DefaultRedirect" comme "", l'URL defaultRedirect du site sera utilisée par défaut.

La solution était tout simplement de désactiver CustomError de manutention pour cette voie spécifique, comme ceci:

<system.web> 
    <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly"> 
     <error statusCode="404" redirect="/404/default.aspx" /> 
    </customErrors> 
</system.web> 
<location path="health.aspx"> 
    <system.web> 
     <customErrors mode="Off"/> 
    </system.web> 
</location> 

Merci quand même, Jose.

+0

Comment avez-vous fait cela (désactiver l'erreur personnalisée pour un chemin spécifique)? – taur

Questions connexes