Предотвращение взаимоблокировки при вызове асинхронного метода без использования ожидания

Мне нужно вызвать метод, возвращающий Taskизнутри

public override void OnActionExecuting(ActionExecutingContext filterContext)

Это не позволит мне сделать этот метод асинхронным, он выдает следующее

An asynchronous module or handler completed while an asynchronous operation was still pending.

и при звонке

 entityStorage.GetCurrentUser().Result

Я получаю тупик. Как я могу этого избежать?

Я играл с этим, придумывая такие вещи, как

entityStorage.GetCurrentUser().Result.ConfigureAwait(false).GetAwaiter().GetResult();

Но это не работает. Как мне это сделать? Мое решение должно работать с ASP.NET 4 и Async Targeting Pack, я не могу использовать ASP.NET 4.5, так как выполняю развертывание в Azure.

13
задан Tom 9 August 2012 в 16:43
поделиться