¿Cuál es la diferencia entre las secciones customErrorsy httpErrorsdel archivo web.config en las aplicaciones ASP.NET MVC?
¿Cuáles son las pautas para usar cada sección?
web-config
iis-7.5
Alan T
fuente
fuente

Respuestas:
Descargo de responsabilidad: esto es de mi experiencia y no es un hecho comprobado.
Ambos se utilizan para definir el manejo de errores para un sitio web, pero un software diferente se refiere a diferentes elementos de configuración.
customErrorsson un elemento heredado (compatible con versiones anteriores), utilizado por Visual Studio Development Server (también conocido como VSDS o Cassini).httpErrorsson el nuevo elemento que solo usa IIS7.Esto resalta el posible problema al desarrollar sitios web ASP.NET mientras se usa VSDS en lugar del IIS local.
Además, consulte esta publicación por mí mismo sobre cómo manejar los mensajes de error con IIS7, si desea tener un control total de la salida de error.
Resumen:
VSDS- usocustomErrorsIIS6- usarcustomErrorsIIS7usarhttpErrors.y si desarrollas con
VSDSpero publicas enIIS7, supongo que necesitarás ambos.fuente
* Actualizado en abril de 2016
El atributo customErrors se usa cuando el código .net lanza una excepción (404, 403, 500, etc.) y el atributo httpErrors se usa cuando IIS mismo lanza una excepción.
Hay muchas trampas que intentan configurar esto correctamente. Entonces, si está buscando un ejemplo rápido, las 2 mejores opciones que tiene son:
Ejemplo 1: uso de páginas html
Ejemplo 2: uso de páginas aspx
Y en las páginas de error aspx debe hacer algo como esto (ejemplo página 404):
Nota: Usar extensiones menos URL en la sección customErrors es No posible ! . (sin hacks)
Una solución es deshabilitar los errores personalizados y dejar que los errores http manejen la página personalizada. Un amigo ha creado dicha configuración, cuando encuentre algo de tiempo, compartiré el código.
Antecedentes
Una buena página de error personalizada:
Entonces, para aclarar algunas opciones en nuestra configuración:
<customErrors mode="RemoteOnly". Puede especificar aquí:On,Off,RemoteOnly.On= Mostrar siempre páginas de error personalizadasOff= Mostrar siempre el error realRemoteOnly= Muestra el error localmente, pero muestra la página de error personalizada de forma remota. Entonces queremosRemoteOnlypara la declaración 1<customErrors redirectMode="ResponseRewrite". Puede especificar aquí:ResponseRedirectoResponseRewrite. ElResponseRedirectmodo redirigirá la página de error a la página de error personalizada. Para un rastreador de enlaces (SEO), esto dará como resultado 302 -> 500, pero desea que el rastreador de enlaces obtenga un error 500.<httpErrors errorMode="DetailedLocalOnly". Este es el equivalente delcustomErrorsmodo. Las opciones que tiene:Custom,Detailed,DetailedLocalOnly.Una buena publicación de blog que me ayudó mucho es: http://benfoster.io/blog/aspnet-mvc-custom-error-pages
fuente
<customErrors>versus<httpErrors><customErrors><httpErrors>Fuente citada: páginas 404 y de error personalizadas en ASP.NET (excelente artículo)
ExecuteURLsirve contenido dinámico como una página .aspx (elpathvalor debe ser una URL relativa al servidor ):Filesirve un archivo de error personalizado, como una página .html:Referencia: Errores HTTP (www.iis.net)
para más detalles, lea el enlace de www.iis.net arriba
fuente
it's no loger necesary to use customErrorsy la cita, esta es realmente la información queLa sección de errores en la configuración web es para proporcionar un enfoque de manejo de errores http personalizado, hay dos secciones, una CustomErrors dentro de la sección system.web y otra httpErrors dentro de la sección system.webServer (como se muestra a continuación)
customErrors: esta sección estaba en uso antes de la introducción de IIS 7, IIS 6 5 y antes de usar completamente esta sección para manejar errores http personalizados de acuerdo con el código de estado http.
httpErrors: IIS 7 y posterior usan esta sección, así como la sección customErrors para manejar errores http personalizados basados en sus extensiones de archivo si la extensión de página solicitada se registra con ISAPI dll (.aspx, ashx, .asmx, .svc, etc.) como index.aspx y luego Configuración de recogida de IIS desde la sección customeErrors; de lo contrario, se configura desde httpErrors (el modo alojado de IIS 7 debe configurarse como modo integrado, no clásico)
a continuación se muestran los ejemplos que corresponden al enlace de verificación de manejo de errores 404
httperrors vs customerrors en webconfig, iis, asp.net
fuente