У меня есть простой метод контроллера APIКак получить правильную трассировку стека для исключений в действиях async для Web API 2?
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 для смягчения проблемы?
Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. –
Если это правила, я последую за ними в будущем. Однако рассмотрим это - у меня нет критики для автора, это единственное решение в WebApi 5.0.0, но теперь есть лучшее решение - обновление до WebApi v5.1.1 –
Это действительно лучший ответ, это ошибка в структуре и лучший способ исправить это - обновить. –