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 是危險的,因為非同步