Я работал над презентацией и думал, что следующее должно потерпеть неудачу, поскольку ActionResult не возвращается в правильном контексте. Я загрузил его с помощью VS и не получил никаких ошибок. Я отлаживал его и знал, что он переключает потоки. Поэтому кажется, что это законный код.
Не заботится ли ASP.NET о том, какой контекст или поток он включен, как клиентское приложение? Если да, то какая цель предоставляет AspNetSynchronizationContext? Я не чувствую себя правильно, добавляя ConfigureAwait в самом действии. Что-то кажется неправильным. Может кто-нибудь объяснить?
public async Task<ActionResult> AsyncWithBackendTest()
{
var result = await BackendCall().ConfigureAwait(false);
var server = HttpContext.Server;
HttpContext.Cache["hello"] = "world";
return Content(result);
}