2010-07-06 8 views
0

J'ai un site Web qui utilise un fichier web.config. J'ai essayé d'ajouter dans le code suivant:Ajout de pages d'erreur personnalisées à un site Web

<customErrors mode="On" defaultRedirect="error.htm"> 
      <error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors> 

Mais cela ne semble pas fonctionner. Les erreurs apparaissent toujours. Pourrais-je le mettre au mauvais endroit?

Exemple:

<authentication mode="Forms"> 
     <!-- Assign login url to LOGINSTATUS control --> 
      <!-- log user out after 15 minutes of inactivity --> 
      <forms loginUrl="~/Tilton/Login/Login.aspx" timeout="15"/> 
     </authentication> 
    <customErrors mode="On" defaultRedirect="error.htm"> 
     <error statusCode="404" redirect="FileNotFound.htm" /> 
    </customErrors> 

Répondre

2

Le gestionnaire d'erreur ASP.NET ne fonctionne que pour les ressources que aurait ont été traitées par le moteur ASP.NET devraient-ils exister. Par exemple, votre gestionnaire devrait fonctionner pour nonexist.aspx, mais ne fonctionnera pas pour foo.bar car .bar n'est pas mappé sur ASP.NET. Est-ce votre problème?

+0

Après quelques tests, je peux voir ce que vous voulez dire, oui. Tout ce qui concerne page.aspx fonctionne encore page.page ne sera pas. – BioXhazard

+0

Y a-t-il quelque chose que je puisse faire pour tout gérer? – BioXhazard

+0

La page d'erreur personnalisée dans IIS est ce que vous voulez, pas celle d'ASP.NET. Si vous allez dans le gestionnaire ASP.NET ISAPI dans la configuration d'IIS et lui dites "vérifier le fichier existe" alors tous les fichiers manquants iront au gestionnaire d'IIS, y compris ceux qui seraient normalement manipulés par ASP.NET. Si vous ne voulez pas cocher cette case, vous aurez besoin de deux gestionnaires 404 - l'un dans IIS, l'autre dans web.config. – x0n

0

Vous pouvez envisager de définir une page d'erreur 404 personnalisée dans IIS lui-même. Dans IIS 7, il existe une section de configuration «pages d'erreur» pour chaque site Web.