ASP.NET MVC 4 асинхронное дочернее действие

У меня есть приложение ASP.NET MVC 4 для .NET 4.5. Одним из наших дочерних действий является вызов веб-службы с использованием HttpClient.

Поскольку мы блокируем ввод-вывод в ожидании ответа HttpClient, имеет смысл преобразовать код в шаблон async / await. Однако, когда MVC 4 пытается выполнить дочернее действие, мы получаем следующее сообщение об ошибке:

HttpServerUtility.Execute blocked while waiting for an asynchronous operation to complete.

На первый взгляд кажется, что MVC 4 не поддерживает async / await в дочернем действии. Единственный оставшийся вариант - запускать с использованием синхронного кода и принудительно вызывать & quot; ждать & quot; на асинхронной задаче.

Как мы все знаем, прикосновение к .Result или .Wait () в асинхронной задаче в контексте ASP.NET вызовет немедленную тупиковую ситуацию. Моя асинхронная логика обернута в библиотеку классов, поэтому я не могу использовать "await blah.ConfigureAwait (false)" & quot; трюк. Помните, пометка & quot; async & quot; на дочернем действии и использовании await вызывает ошибку, и это мешает мне настроить await.

На этом этапе я загнан в угол. Естьany способ использовать асинхронные методы в дочернем действии MVC 4? Похоже, плоская ошибка без обходных путей.

Ответы на вопрос(2)

Ваш ответ на вопрос