¿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?
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:
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:
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
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