Асинхронизация и ожидание в контроллере MVC 4

Каждый раз, когда я пытаюсь использовать новыйAsync а такжеAwait операторы и вернуть коллекцию объектов из базы данных, я получаюInvalid Operation исключение. Когда я использую его, чтобы вернуть только один элемент, он работает нормально.

Код контроллера:

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

Посмотреть код:


Table Dumps
@Html.Action("EnvironmentList", "Environment")
@Html.Action("ComputerList", "Computer")
@Html.Action("ProductList", "Product")
@Html.Action("InstanceList", "Instance")
@Html.Action("ProfileList", "Profile")

Код доступа к данным:

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

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

Ошибка, которую я получаю:

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

Сведения об исключении: System.InvalidOperationException: HttpServerUtility.Execute заблокирован во время ожидания завершения асинхронной операции.

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

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