ASP.NET MVC 4 Async Child Action

Tengo una aplicación ASP.NET MVC 4 orientada a .NET 4.5. Una de nuestras acciones secundarias realiza una llamada a un servicio web utilizando HttpClient.

Ya que estamos bloqueando en IO a la espera de la respuesta HttpClient, tiene mucho sentido convertir el código al patrón asíncrono / espera. Sin embargo, cuando MVC 4 intenta ejecutar la acción secundaria, aparece el siguiente mensaje de error:

HttpServerUtility.Execute bloqueado mientras espera a que se complete una operación asíncrona.

A primera vista, parece que MVC 4 no admite async / await en una acción secundaria. La única opción restante es ejecutar el código síncrono y forzar una "Espera" en la tarea asíncrona.

Como todos sabemos, tocar .Resultar o .Wait () en una tarea asíncrona en un contexto ASP.NET provocará un punto muerto inmediato. Mi lógica asíncrona está envuelta en una biblioteca de clases, por lo que no puedo usar el truco "await blah.ConfigureAwait (false)". Recuerde, etiquetar "async" en la acción secundaria y usar await causa un error, y eso me impide configurar la espera.

Estoy pintado en una esquina en este punto. Esta ahíalguna ¿Cómo consumir métodos asíncronos en una acción secundaria de MVC 4? Parece un error sin ninguna solución.

Respuestas a la pregunta(2)

Su respuesta a la pregunta