Ich habe eine Teilansicht, die versucht, eine IEnumerable<Post>
aus der Datenbank mit asynchronen ...
Methode
public static class PostService
{
public static int PostsPerPage = 50;
public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0)
{
return await entityFrameworkDbContext.Posts
.ToListAsync();
}
}
Teilansicht
public async Task<ActionResult> Recent(int page = 0)
{
return PartialView(await PostService.GetRecentAsync(page));
}
Und dann, wenn ich versuche, es zu nennen
@Html.Action("Recent", "Post")
Ich bekomme die folgende Ausnahme
HttpServerUtility.Execute blockiert, während auf den Abschluss eines asynchronen Vorgangs gewartet wird.
Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stapelverfolgung, um weitere Informationen über den Fehler und dessen Ursprung im Code zu erhalten.
Ausnahmedetails: System.InvalidOperationException: HttpServerUtility.Execute blockiert, während auf den Abschluss eines asynchronen Vorgangs gewartet wird.
Warum erhalte ich diesen Fehler? Sollte es nicht funktionieren?
Eine Problemumgehung für dieses Problem besteht darin, die Methode gemäß den Anforderungen von MVC synchron zu machen, den SynchronizationContext zu löschen, die asynchrone Methode aufzurufen, auf das Ergebnis zu warten und dann den Kontext wiederherzustellen.
siehe meine volle Antwort hier
quelle