Я просматривал наши журналы и обнаружил ошибку:
Требуемый токен защиты от подделки не был предоставлен или был недействительным.
Похоже, что один из разработчиков, возможно, не добавил токен на страницу или не отправил его с помощью вызова AJAX. Проблема в том, что я понятия не имею, где в нашей базе кода это возникло. Он был записан с помощью кода регистрации [HandleError], который мы добавили, но у нас нет возможности узнать, какой метод вызвал это.
Трассировка стека показывает только следующее, что не очень полезно:
в System.Web.Helpers.AntiForgeryWorker.Validate (HttpContextBase
контекст, струнная соль) в
System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters (ControllerContext
controllerContext, IList`1 фильтры, ActionDescriptor actionDescriptor)
в
System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext
controllerContext, String actionName)
Метод OnException в нашем BaseController выглядит следующим образом:
protected override void OnException(ExceptionContext filterContext)
{
Exception ex = filterContext.Exception;
//
// Custom logging code here was removed for brevity
if (filterContext.Exception.Data.Contains("Description") == false)
filterContext.Exception.Data.Add("Description", "Oops. Something went wrong!");
//Displays a friendly error, doesn't require HandleError
filterContext.ExceptionHandled = true;
//Displays a friendly error, *requires* HandlError
base.OnException(filterContext);
}
Мой вопрос:
Есть ли способ получить источник исключения, т.е. чтобы узнать, какой контроллер или исходный файл вызвал исключение, используя ExceptionContext.
Ценю помощь.