誰かがこれを知っているのだろうか。
asp.netvbWebアプリでかなり厳しいエラーが発生していました。キーボードに頭をぶつけたために、額にQWERTY配列がほぼ刺繍されていたと言います。しかし、私はエラーの原因を理解したと思います:
私は次のコードを持っています:
fileToDownload = createFileSet(fileToDownload, confirm)
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileToDownload.Name)
HttpContext.Current.Response.AddHeader("Content-Length", fileToDownload.Length.ToString())
HttpContext.Current.Response.ContentType = ReturnExtension(fileToDownload.Extension.ToLower())
HttpContext.Current.Response.TransmitFile(fileToDownload.FullName)
HttpContext.Current.ApplicationInstance.CompleteRequest()
Directory.Delete("C:\temp_" & confirm, True)
'System.IO.File.Delete(fileToDownload.FullName) <--- Error here
その最後の行にコメントを付けると、本当に醜いエラーが発生します(やり直して綴ることができますが、どのようなエラーですが、実際には問題ではありません)。
原因はわかっていると思います。ユーザーがファイルをダウンロードしている、または処理中などで、プログラムがファイルを削除しようとしています...エラーが発生します。
いくつかを作成する方法はありますかon HttpContext.Current.Response.TransmitFile.complete
(コードを作成)、またはバッチファイルとWindowsスケジューラを使用して、不要になったこれらのファイルをクリーンアップしますか?
私の誤りの結論は正しいと思いますか?「イベント中」を作成する方法は実際にはわかりませんが、asp.netの初心者であるため、確実に知ることはできません。