Ответ 1
Способом решения этой проблемы MVC является фильтр. Если вы уже на MVC3, глобальные фильтры для вас. Существует специальный тип фильтра для передачи ошибок: фильтр HandleError
. Эта статья описывает большую часть ее использования.
Вы можете реализовать свой собственный фильтр и управлять всеми аспектами необработанных исключений, например:
public class HandleExceptionsAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
var expception = filterContext.Exception;
// custom code here..
}
}
Наконец, если вы хотите, чтобы все необработанные исключения сохранялись и регистрировались, ELMAH, то есть ELMAH.MVC - лучший выбор. Установите его с помощью пакета NuGet, настройте его, и все данные будут доступны по ссылке, например:
http://yourapp/admin/elmah/
Мое предложение не использовать ничего, как Application_Error
в Global.asax.cs.