2010-08-02 2 views
0

Я экспериментирую с отношениями между Elmah и MVC, установленными в обработке исключений, и удивлен результатом следующего кода. Это совершенно новое, прямое из проекта MVC-приложения проекта, и я добавил только модули Elmah и обработчики в web.config. И в конечно «броска»:MVC HandleError атрибут, не работающий на контроллере

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

Перерыв, когда ошибка возникает отключена, но отладчик все еще ломается. Когда я продолжаю, я получаю YSOD и журнал ошибок Elmah, но, похоже, HandleError ничего не делает.

РАЗ В я не думаю, что я должен был иметь пользовательские ошибки включены, как я думал, что это только для «моих» необработанных ошибок. Я думаю, что MVC является таким же клиентом этого сервиса, как и я.

+2

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

ответ

0

Проверить HandleErrorAttribute добавляется к GlobalFiltersCollection в Global.asax.cs

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

Применение фильтра в глобальном масштабе эквивалентно добавлению атрибута к каждому действию. Если я применяю его только к одному действию, и он не работает, применение его ко всем действиям приведет к тому, что он не будет работать повсюду. – ProfK

Смежные вопросы