2011-05-23 14 views
6

Desde un nuevo Proyecto MVC 3, he modificado una acción de índice() para lanzar una excepción. Espero que se muestre la vista stock Error.chhtml, porque establecí <customErrors mode="On" /> en el archivo web.config. En cambio, sigo teniendo la "pantalla amarilla de la muerte" mientras corro desde VS.MVC 3 Errores personalizados que no se muestran

<system.web> 
    <customErrors mode="On" /> 
    ... 

Mi atributo HandleError se establece a nivel mundial de los global.asax.cs.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 

... sin modificaciones, según la configuración predeterminada del proyecto. He corrido contra IIS express y VS Dev Server. Nada hace que aparezca la página de error personalizada. ¿Qué me estoy perdiendo?

+0

Parece trabajar conmigo sólo la '' set, el Compartido> Error.aspx se está mostrando cuando se produce una excepción en la aplicación. Mi código Global.asax es como es, no tengo el método 'RegisterGlobalFilters', no como tu código. –

Respuesta

1

¿Qué servidor web estás usando? IIS7 usa una sección diferente de la web.config ... que puede ser su problema.

ver esto: What is the difference between customErrors and httpErrors?

+0

IIS Express es supuestamente una simulación IIS7 –

+0

Sí, tengo que usar IIS Express con mi aplicación MVC3 para que el comportamiento de mis mensajes de error dev sea coherente con mi sitio de producción. – ctorx

8

he visto el mismo problema, lo cual se debe a que he añadido el modo < customErrors = "on"/> a raíz < > \ views \ Web.config, en lugar de < raíz > \ Web.config

+0

Eres un santo ... muchas gracias por publicar esto. – eckza

0
<system.web> 
    <customErrors mode="On" defaultRedirect="Error.html"> 
     <error statusCode="403" redirect="/Error403" /> 
     <error statusCode="404" redirect="/Error404" /> 
     <error statusCode="500" redirect="/Error500" /> 
    </customErrors> 
</system.web> 
<system.webServer> 
    <httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" > 
    <remove statusCode="403"/> 
    <remove statusCode="404"/> 
    <remove statusCode="500"/> 
    <error statusCode="403" responseMode="ExecuteURL" path="/Error403" /> 
    <error statusCode="404" responseMode="ExecuteURL" path="/Error404" /> 
    <error statusCode="500" responseMode="ExecuteURL" path="/Error500" /> 
    </httpErrors> 
</system.webServer> 
Cuestiones relacionadas