2010-08-02 4 views
0

J'expérimente la relation entre Elmah et MVC dans la gestion des exceptions, et je suis surpris du résultat du code suivant. Ceci est une toute nouvelle application MVC de modèle de projet, et j'ai seulement ajouté des modules et des gestionnaires Elmah au web.config. Et au cours du « jet »:L'attribut MVC HandleError ne fonctionne pas sur le contrôleur

[HandleError] 
public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
     throw new Exception("Just for you Elmah!"); 
     return View(); 
    } 

Pause lorsque l'erreur est jeté est mise hors service, mais le débogueur brise encore. Quand je continue, je reçois un YSOD, et un journal d'erreur Elmah, mais il semble que HandleError ne fait rien.

JUSTE Je ne pensais pas que je devais avoir des erreurs personnalisées activées, comme je pensais que c'était seulement pour « mes » erreurs non gérées. Je suppose que MVC est tout aussi client de ce service que moi.

+2

http://stackoverflow.com/questions/619582/ asp-net-mvc-handleerror-not-catching-exceptions – Ahmad

Répondre

0

Vérifier HandleErrorAttribute est ajouté à la GlobalFiltersCollection dans le Global.asax.cs

public static void RegisterGlobalFilters(GlobalFiltersCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
} 
+3

L'application du filtre globalement équivaut à ajouter l'attribut à chaque action. Si je l'applique à une seule action et que cela ne fonctionne pas, l'appliquer à toutes les actions ne fera que l'empêcher de fonctionner partout. – ProfK

Questions connexes