我正在做一个演示文稿,并认为以下操作应该失败,因为 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);
}