Creo que he configurado nuestra aplicación MVC para usar correctamente el [HandleError]
. Este es mi controlador:ASP.NET MVC HandleError no funciona (customErrors está establecido en "On")
[HandleError]
public class SupportController : BaseController {
public ActionResult Toss() {
throw new Exception("uh oh");
}
// snip
}
Y haber puesto mi etiqueta customErrors
en web.config
en "On":
<customErrors mode="On"></customErrors>
Sin embargo, todavía estoy recibiendo la pantalla amarilla de la muerte de excepciones. Establecer un punto de interrupción en mi acción Toss()
muestra que HttpContext.IsCustomErrorEnabled
es establecido en verdadero.
No estamos haciendo nada con el motor de visualización, y el BaseController
no se mezcla con nada (y otros controladores que no lo extienden tienen el mismo problema).
Estoy desarrollando en Windows XP y tengo el mismo problema cuando la aplicación se implementa en un cuadro de servidor 2003 (IIS 6).
No creo que hay una excepción en la página error.aspx
:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Sorry, an error occurred while processing your request.
</h2>
</asp:Content>
Una cosa que puede ser diferente es que esta aplicación fue creada atrás cuando MVC Beta fue la última versión, y se actualizó a la RC y luego RTM cuando fueron lanzados. ¿Habría sido algún ajuste extraño que queda de allí?
Puedo hacer que esto funcione en otras aplicaciones, así que estoy un poco desconcertado.
¿Su página de error.aspx está en ~ \ Views \ Support o ~ \ Views \ Shared? – Talljoe
~ \ views \ Shared - incluso trató [HandleError (Ver = "~/Views/Shared/Error.aspx")] (no funcionó) – swilliams