La documentation dit
existingResponse="PassThrough"
Ne modifie pas la réponse s'il existe une réponse existante. http://www.iis.net/configreference/system.webserver/httperrors#005
Mais qu'est-ce que cela signifie par "la réponse existante existe"?
Par exemple. Je veux que mon gestionnaire customErrors
supprime la réponse ASP.NET, afin que IIS pense que cette réponse n'existe pas. Comment pourrais-je faire cela?
Il existe trois valeurs possibles, à partir du schéma:
<attribute name="existingResponse" type="enum" defaultValue="Auto">
<enum name="Auto" value="0" />
<enum name="Replace" value="1" />
<enum name="PassThrough" value="2" />
</attribute>
En gros, voici comment je comprends cela:
PassThrough - laisse la réponse existante seule, tant qu'il y en a une. Il est possible que votre logique d'application ne renvoie rien. Dans ce cas, la page d'erreur définie ici est utilisée.
Auto - utilise les pages d'erreur IIS telles que définies dans ce nœud, sauf lorsque dans asp.net vous avez défini:
Response.TrySkipIisCustomErrors = true;
si vous l'avez fait, la réponse de votre code est utilisée.
Remplacer - utilise toujours les pages d'erreur IIS, même si le développeur a défini TrySkipIisCustomErrors
.
La dernière option semble être celle que vous souhaitez.
Modifier:
Considérer:
existingResponse="PassThrough"
essayez maintenant d'ouvrir une page asp.net inexistante, vous verrez:
Même si la ressource n'était pas là, le runtime a fourni une réponse, elle est transmise au navigateur.
Maintenant, essayez d'ouvrir une page html non existante. Cette fois, nous obtenons toujours un statut 404 mais une page vide.
changer en:
existingResponse="Auto"
la page asp.net manquante affiche toujours la page d'erreur asp.net, mais pour la page html manquante, nous obtenons maintenant le IIS one:
Donc, en résumé: lorsque l'on regarde les pages html et aspx manquantes avec différentes valeurs existingResponse
, nous obtenons différentes pages d'erreur:
.html-404 .aspx-404 .aspx-500
--------------------------------------------------
Auto IIS asp.net asp.net
PassThrough - asp.net asp.net
Replace IIS IIS IIS