进程无法访问该文件,IIS中的另一个进程正在使用该文件

本文关键字:进程 文件 另一个 IIS 访问 | 更新日期: 2023-09-27 18:20:17

我收到这个错误"System.IO.IOException:进程无法访问文件"C:''inetpub''wwwroot''wmo''Content''UploadFolder''Ad-2015.xlsx",因为其他进程正在使用该文件。"。我使用mvc开发了我的应用程序,c#使用的是语言。我把我发布的文件放在IIS wwwroot文件夹中。我的代码是

public ActionResult ImportData(HttpPostedFileBase file)
    {if (file != null)
        {
            if (Request.Files["file"].ContentLength > 0)
            {
                string fileExtension = System.IO.Path.GetExtension(Request.Files["file"].FileName);
                if (fileExtension == ".xls" || fileExtension == ".xlsx")
                {
                    string fileLocation = Server.MapPath("~/Content/UploadFolder/") + Request.Files["file"].FileName;
                    loc = fileLocation;
                    if (System.IO.File.Exists(fileLocation))
                    {
                        System.IO.File.Delete(fileLocation);
                    }
                    Request.Files["file"].SaveAs(fileLocation); }}}}

我从这行"System.IO.File.Delete(fileLocation);"

进程无法访问该文件,IIS中的另一个进程正在使用该文件

中得到错误

网站可能在未处理的进程中打开了它。检查在此点之前引用文件的任何IDisposable代码,并将其包装在using语句中。如果不处理,它将保持文件打开,并且您不能删除它。

是否使用FileStream实例而不通过using语句导入System.IO

这是我的代码,它正在按预期工作。

using (var fileStream = new FileStream(filePath, FileMode.Create)) { model.PhotoPath.CopyTo(fileStream); }