Async et attendre dans le contrôleur MVC 4

Chaque fois que j'essaie d'utiliser la nouvelle Async et Await opérateurs et de retourner une collection d'objets à partir d'une base de données, j'obtiens une Invalid Operation exception. Lorsque je l'utilise uniquement le retour d'un seul Élément, il fonctionne très bien.

Contrôleur De Code:

public async Task<ActionResult> EnvironmentList()
{
    EfEnvironmentDataAccess dataAccess = new EfEnvironmentDataAccess();
    ICollection<Environment> environments = await dataAccess.GetAllEnvironmentsAsync();
    return PartialView(environments);
}

Afficher Le Code:

<div class="ECURightCol">
<h3>Table Dumps</h3>
@Html.Action("EnvironmentList", "Environment")
@Html.Action("ComputerList", "Computer")
@Html.Action("ProductList", "Product")
@Html.Action("InstanceList", "Instance")
@Html.Action("ProfileList", "Profile")

Le Code D'Accès Aux Données:

public ICollection<Environment> GetAllEnvironments()
{
    using (EcuWebDataContext db = new EcuWebDataContext())
    {
        return db.Environments.OrderBy(e => e.Name).ToList();
    }
}

public async Task<ICollection<Environment>> GetAllEnvironmentsAsync()
{
    return await Task.Run(() => GetAllEnvironments());
}

L'Erreur que j'obtiens est:

Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.

Détails De L'Exception: System.InvalidOperationException: HttpServerUtility.Exécuter bloquée en attente d'une opération asynchrone à compléter.

source d'informationauteur twreid