У меня есть простой метод API-контроллера
public async Task<Models.Timesheet> GetByDate(DateTime date, string user = null)
{
throw new InvalidOperationException();
}
Теперь проблема заключается в том, что трассировка стека исключений, которую я получаю либо в моем настраиваемом фильтре действий, либо просто установкой IncludeErrorDetailPolicy.Always
выглядит следующим образом
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()
Раньше он был намного лучше с Web API v1. После обновления до v2 трассировки стека в значительной степени непригодны - ожидается, что при асинхронном/ожидании трассировки стека не будут такими, какими они когда-то были, но в этом случае вся трассировка стека не содержит намека на даже класс, который не смогли. Есть ли что-то, что можно настроить в веб-API для устранения проблемы?