2011-02-24 13 views
5

Estoy ejecutando mi aplicación MVC 3 (recientemente actualizada desde 2) en IIS 7.5 (Win 7 64bit) con un grupo de aplicaciones de canalización integrado .NET 4.0 y la siguiente configuración en web.config:IIS 7.5 sin tener en cuenta los customErrors para 404 devueltos por la aplicación MVC 3

<customErrors mode="On" defaultRedirect="~/Problem/Oops" redirectMode="ResponseRedirect"> 
    <error statusCode="404" redirect="~/Problem/NotFound" /> 
</customErrors> 

Si un método de acción en un controlador emite una excepción el servidor y por lo tanto genera un código de error 500 que envía correctamente el navegador a la URL de redireccionamiento por defecto.

Sin embargo, si mi acción devuelve deliberadamente un HttpNotFoundResult a través de HttpNotFound() obtengo la página de error IIS 7.5 404.0 y no la indicada en mi web.config.

Si ingreso una URL que no existe en mi aplicación como http://localhost/MyApp/FOO, entonces se me muestra la página como lo indica el web.config.

¿Alguien tiene alguna idea de por qué no me redirigen a mi página personalizada de error 404 cuando uso HttpNotFound()?

Respuesta

6

favor intento por debajo de la sintaxis en lugar de llamar HttpNotFound y quiero saber el resultado;)

throw new HttpException(404, "NotFound"); 
+0

Puedo confirmar que esto funcionó para mí. – Thomas

0

¿Has probado la configuración Response.TrySkipIisCustomErrors = true;?

(ver http://blog.janjonas.net/2011-04-13/asp_net-prevent-iis_75_overriding-custom-error-page-iis-default-error-page)

+0

Ooh suena prometedor. Voy a darle una oportunidad. – Peter

+0

Lamentablemente esto no funcionó para mí. El código en mi ProblemsController nunca se toca. IIS parece ignorar las configuraciones o estoy malinterpretando el uso del método MVC3 HttpNotFound(). – Peter

+0

Aceptar esta respuesta ya que fue la más útil y podría funcionar para otros, incluso si no funcionó para mí. – Peter

Cuestiones relacionadas