Pracowałem nad prezentacją i uważałem, że następujące rzeczy powinny zakończyć się niepowodzeniem, ponieważ właściwość ActionResult nie jest zwracana we właściwym kontekście. Mam obciążenia testowane z VS i nie dostałem błędów. Debugowałem go i wiem, że przełącza wątki. Wygląda więc na to, że jest to poprawny kod.Wywoływanie programu ConfigureAwait z akcji ASP.NET MVC
Czy program ASP.NET nie dba o to, jaki kontekst lub wątek jest włączony, tak jak aplikacja kliencka? Jeśli tak, to w jakim celu dostarcza AspNetSynchronizationContext? Nie mam racji umieszczając plik ConfigureAwait w samej akcji. Coś w tym jest nie tak. Czy ktoś może wyjaśnić?
public async Task<ActionResult> AsyncWithBackendTest()
{
var result = await BackendCall().ConfigureAwait(false);
var server = HttpContext.Server;
HttpContext.Cache["hello"] = "world";
return Content(result);
}
Prawidłowa odpowiedź powinna brzmieć: dlaczego jest to całkowicie OK lub powinna dawać przykład tego, co nie powiedzie się, gdy spróbujesz tego dokonać.Moje jelito mówi mi, że nie powinienem, ale chciałbym mieć fakty, żeby mnie poprzeć. –