web-dev-qa-db-fra.com

Que signifie existingResponse = "PassThrough" dans IIS?

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?

30
Andrey Shchekin

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:

enter image description here

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:

enter image description here

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
43
Peter Hahndorf