¿Qué significa existingResponse = "PassThrough" en IIS?


La documentación dice

existingResponse="PassThrough"

Deja la respuesta intacta si existe una respuesta existente. http://www.iis.net/configreference/system.webserver/httperrors#005

Pero, ¿qué significa eso con "la respuesta existente existe"?

Por ejemplo, quiero que mi customErrors controlador suprima el ASP.NET respuesta, para que IIS pensara que la respuesta no existe. ¿Cómo haría eso?

Author: Andrey Shchekin, 2015-06-25

1 answers

Hay tres valores posibles, desde el esquema:

<attribute name="existingResponse" type="enum" defaultValue="Auto">
  <enum name="Auto" value="0" />
  <enum name="Replace" value="1" />
  <enum name="PassThrough" value="2" />
</attribute>

Aproximadamente, así es como entiendo esto:

PassThrough - deja la respuesta existente sola, siempre y cuando haya una. Es posible que la lógica de su aplicación no devuelva nada. En ese caso se utiliza la página de error definida aquí.

Auto - usa las páginas de error de IIS como se definen en este nodo, excepto cuando asp.net lo hiciste set:

Response.TrySkipIisCustomErrors = true;

Si has hecho eso, la respuesta desde su código se utiliza.

Reemplazar - siempre usa las páginas de error de IIS, incluso si el desarrollador ha configurado TrySkipIisCustomErrors.

La última opción parece ser la que quieres.


Editar:

Considere:

existingResponse="PassThrough"

Ahora intente abrir un archivo no existente asp.net página, verás:

introduzca la descripción de la imagen aquí

Aunque el recurso no estaba allí, el tiempo de ejecución proporcionó una respuesta, se pasa al navegador.

Ahora, intente abrir un archivo no existente página html. Esta vez todavía tenemos un estado 404 pero una página vacía.

Cambiando a:

existingResponse="Auto"

Los desaparecidos asp.net página todavía muestra la asp.net página de error, pero para la página html que falta ahora obtenemos el IIS one:

introduzca la descripción de la imagen aquí

Así que, resumiendo: al mirar las páginas html y aspx faltantes con diferentes existingResponse valores, obtenemos diferentes páginas de error:

                .html-404   .aspx-404   .aspx-500
--------------------------------------------------
Auto             IIS         asp.net    asp.net
PassThrough      -           asp.net    asp.net
Replace          IIS         IIS        IIS
 37
Author: Peter Hahndorf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-26 16:15:17