3

Je travaille sur un site Web avec des pages ASP classiques héritées (converties en ASP.NET selon les besoins) et de nouvelles pages ASP.NET. L'utilisation de IIS 7 Integrated Pipeline a été très utile avec notre configuration. Par exemple, nous avons réussi à obtenir une authentification automatique des formulaires avec les pages ASP classiques simplement en configurant les sections appropriées du fichier web.config (par exemple, aucune modification n'était requise pour les pages ASP classiques, pour plus d'informations, voir this). Un collègue pense que les pages d'erreur personnalisées, comme indiqué dans la section web.config <customErrors>, doivent également être automatiquement appliquées aux pages ASP classiques, mais pour notre site Web, elles ne fonctionnent que pour l'ASP. Pages NET. Je n'ai pas non plus trouvé d'informations décrivant la possibilité d'appliquer des pages d'erreur personnalisées à ASP classique avec le pipeline intégré IIS 7.Comment faire pour obtenir des pages d'erreur personnalisées fonctionnant avec ASP classique avec IIS 7 Integrated Pipeline

Est-il possible d'appliquer des pages d'erreur personnalisées aux pages ASP classiques par web.config pour un site Web fonctionnant sous IIS7 avec pipeline intégré? Si c'est le cas, comment?

Répondre

3

Les pages d'erreur personnalisées IIS7 sont traitées dans la section de configuration <system.webServer> pas la section <customErrors> sous <system.web> qui s'applique à ASP.NET uniquement:

<configuration> 
    <system.webServer> 
     <httpErrors> 
      <error 
       statusCode="500" 
       subStatusCode="100" 
       path="/500errors.asp" 
       responseMode="ExecuteURL" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

Prenez garde cependant de ces paramètres en conflit avec des erreurs ASP.NET personnalisées. Si vous utilisez .NET 3.5 et au-dessus, vous pouvez définir Response.TrySkipIisCustomErrors dans votre code-behind page d'erreur ASP.NET (ou contrôleur d'erreur si vous utilisez MVC) pour empêcher IIS ne remplace pas votre page d'erreur ASP.NET (s):

Response.TrySkipIisCustomErrors = true // ASP.NET Forms 

cet article de Rick Strahl explique ce problème un peu plus en profondeur:

IIS 7 Error Pages taking over 500 Errors

+0

cette information est très utile. Une question, est-il un moyen de ne pas avoir à spécifier statusCode, par exemple, pour spécifier quelle page utiliser par défaut? – harrije

+0

@harrije - vous pouvez définir 'defaultPath' sur' '. Pour plus d'informations, voir: http://www.iis.net/ConfigReference/system.webServer/httpErrors – Kev

Questions connexes