Web.config 设置为目标 4.5 以获得正确的异步行为

web.config system.web.httpRuntime 必须以 4.5 为目标,以确保线程在恢复异步方法之前将租用请求上下文。

<httpRuntime targetFramework="4.5" />

Async 和 await 在 4.5 之前的 ASP.NET 上有未定义的行为。Async / await 将在可能没有请求上下文的任意线程上恢复。加载下的应用程序将随机失败,并且在等待之后访问 HttpContext 的空引用异常。在 WebApi 中使用 HttpContext.Current 是危险的,因为异步