mvc - Implementación de una página de error personalizado en un sitio web ASP.Net
mvc error page example (4)
Tengo un sitio web ASP.Net y quiero usar una página de error personalizada. Pongo el siguiente código en mi web.config
<customErrors mode="On" defaultRedirect="~/error.aspx">
<error statusCode="404" redirect="~/error.aspx" />
</customErrors>
El problema es que cuando voy a una URL que no existe, todavía se utiliza la página de error 404 especificada en el Administrador de IIS.
Pregunta: ¿Cómo puedo hacer que use la página error.aspx que he creado? ¿Por qué las configuraciones en el Administrador de IIS anulan el web.config?
Hay 2 formas de configurar páginas de error personalizadas para sitios ASP.NET:
- Administrador de Internet Information Services (IIS) (la GUI)
- archivo web.config
Este artículo explica cómo hacer cada uno:
La razón por la que no se muestra la página error.aspx es porque tiene un error en su web.config. Intenta esto en su lugar:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
Es posible que deba asegurarse de que las Error Pages
en el Administrador de IIS - Delegación de funciones estén configuradas en Lectura / Escritura :
Además, esta respuesta puede ayudarlo a configurar el archivo web.config:
Intenta de esta manera, casi igual ... pero eso es lo que hice, y trabajando.
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="apperror.aspx">
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>
</system.web>
</configuration>
o intente cambiar la página de error 404 desde la configuración de IIS, si es necesario.
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
El código anterior es solo para "Error de página no encontrada-404" si se conoce la extensión del archivo (.html, .aspx, etc.)
Junto a él, también ha configurado Errores del cliente para la extensión desconocida o incorrecta como
.aspwx
o .vivaldo
. Tienes que agregar la configuración de httperrors
en web.config
<httpErrors errorMode="Custom">
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
debe estar dentro del <system.webServer>
</system.webServer>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>