Первое, что я хотел бы сделать, это добавить собственный обработчик ошибок к web.comfig.Примерно так:
<system.web>
<customErrors mode="On" defaultRedirect="~/ErrorHandler/Index">
<error statusCode="404" redirect="~/ErrorHandler/NotFound"/>
</customErrors>
<system.web/>`
Это обработает все ошибки, которые вы пропустили, и не позволит отображать системные сообщения об ошибках для ваших пользователей.
Далее я бы использовал контроллер MVC OnException для настройки реагирования на ошибки,
public class UserMvcController : Controller
{
protected override void OnException(ExceptionContext filterContext)
{
filterContext.ExceptionHandled = true;
//Log the error!!
_Logger.Error(filterContext.Exception);
//Redirect
filterContext.Result = RedirectToAction("Index", "ErrorHandler");
{
ViewName = "~/Views/ErrorHandler/Index.cshtml"
};
}
}