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? Похоже, плоская ошибка без обходных путей.