我正在嘗試將HTTP內容寫入FileStream中,並且出現「無法訪問關閉文件」的錯誤等待CopytoAsync(流)。如果我刪除了「等待」,它將繼續操作,沒有任何異常,但寫入的文件大小爲0KB。任何想法,我犯了錯誤?C#,將HTTP內容寫入FileStream的問題,無法訪問已關閉的文件
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.Contents)
{
using (var stream = new FileStream(serverPath, FileMode.Create, FileAccess.ReadWrite))
{
await content.CopyToAsync(stream);
}
}
該異常是否也指定哪個文件導致異常?我想知道這個異常是由於訪問tempdir中的文件還是通過訪問serverPath中的文件造成的。 事實上,在移除await時沒有得到異常很容易解釋:方法CopyToAsync被調用,但沒有等待調用者將進入下一個循環而不等待CopyToAsync的異步部分到達其中的部分它拋出。我懷疑這個例外仍然被拋出,但成爲一個未被發現的例外 – Ladi
@拉迪懷疑等待是完全正確的。異常發生非常隨機。有時用於訪問tempdir並經常訪問服務器路徑。我設法用我發佈的代碼作爲答案來完成它。 – Benjamin