2012-02-15 21 views

Respuesta

6

Esto dependerá, pero normalmente debe estar en el archivo Web.config.

El Web.Debug.config y Web.Release.config (y otras variaciones de configuración) se utilizan para cuando implementa su aplicación. Cuando realiza una operación de publicación, la transformación se aplica a su archivo Web.config durante la implementación, lo que significa que puede tener configuraciones de configuración específicas aplicadas para la depuración, versión y otras configuraciones que haya configurado.

Si normalmente no realiza una operación de publicación durante el desarrollo, necesitará aplicar esta configuración al archivo Web.config para que surta efecto.

Consulte http://msdn.microsoft.com/en-us/library/dd465318.aspx para obtener más información sobre la transformación del archivo Web.config.

Consulte http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx para ver un ejemplo de cómo agregar el elemento customErrors al archivo Web.config.

+0

Scott Hanselman tiene un excelente video en el Canal 9 sobre la implementación y cómo usar efectivamente las versiones de depuración y versiones de la web.config. http://channel9.msdn.com/Events/MIX/MIX10/FT14 –

+0

Defino en web.config antes de cerrar la etiqueta de la siguiente manera: - pero si ocurre un error, se mostrará un mensaje de error completo (no un error personalizado) ... !!! –

+2

Coloque el elemento debajo de la etiqueta . También necesitaría especificar el defaultRedirect, ya sea a una acción del controlador, o preferiblemente a un archivo html estático. Alternativamente, muchas personas han mantenido los errores personalizados desactivados y luego han manejado la ruta en el controlador de error de la aplicación. Ver http://stackoverflow.com/questions/6733064/how-do-i-display-custom-error-pages-in-asp-net-mvc-3 para más detalles. – devdigital

69

Desde mi experiencia, debemos activar el error personalizado en el modo de lanzamiento y desactivarlo en la depuración. Para hacer esto automáticamente, podemos usar la transformación web.config como en el siguiente ejemplo.

Web.Debug.config

Esta configuración permitirá servidor web para mostrar la página amarilla ASP.NET que contiene información de error útiles.

<customErrors mode="Off" xdt:Transform="Replace" /> 

Web.Release.config

En el otro lado, no queremos usuario conocer error técnico. Deberíamos usar una página de error personalizada en lugar de la página amarilla de ASP.NET.

<customErrors mode="On" xdt:Transform="Replace" /> 
+2

Esto debería haberse marcado como respuesta aceptada ... –

+1

¿Por qué no 'RemoteOnly'? Entonces no tendrá que usar la transformación XML y los desarrolladores pueden ver los errores al ver el sitio en el servidor web. –

+0

¿A veces simplemente no es conveniente ver el sitio desde el servidor web? (No es que su punto no tenga mérito ...) –

4

Colóquelo en Web.config y cree una página de error para redirigir. En MVC, tiene HandleErrorAttribute, lo marca en la clase para manejar el error inesperado, lo registra y lanza la página de error. El error personalizado es la página predeterminada para un error específico con código de estado conocido.

<system.web> 
    <customErrors mode="On"> 
     <error statusCode="404" redirect="/PageNotFound?" /> 
    </customErrors> 
</system.web> 
Cuestiones relacionadas