問題:Request.Content.ReadAsMultipartAsync never returns
應用於使用FormData封包上傳(多段MIME)檔案時會卡住的狀況。有人查出原因是執行緒被自已鎖住。
修正前程式碼
/// 使用FormData封包上傳檔案之失敗例子
[HttpPost]
public string UploadFileSample_BAD()
{
try
{
bool isMimeContent = Request.Content.IsMimeMultipartContent();
var provider = Request.Content.ReadAsMultipartAsync().Result;
/// 使用 Task.Wait/Task.Result 同步語法將會自己鎖死自己的thread! Orz
/// 然而改用 async/await 非同步語去就正常了。
...
return $"SUCCESS";
}
catch (Exception ex)
{
return "我失敗了嗚嗚!";
}
}修正後程式碼
參考
Last updated