代码之家  ›  专栏  ›  技术社区  ›  nLL

为什么在ASP.NET中调用file.delete()和file.move()会导致工作进程挂起?

  •  0
  • nLL  · 技术社区  · 13 年前

    当我执行以下代码删除和移动文件时,我的工作进程挂起:

    File.Delete(FullSourceFilePath);
    File.Move(FullTempFilePath, FullSourceFilePath);
    // update db
    Data.AdminUpdateFileSizeandBitrate(FileId, SizeInbytes, Bitrate);
    Response.Redirect("?m=File replaced!");
    

    文件夹 FullSourceFilePath 其中有15000多个文件。

    以上代码导致网站挂起(仅此网站) 如果 需要移动的文件大于5 MB左右。当这个问题出现时,我的工作进程开始消耗内存,逐渐地,我的服务器就要崩溃了。

    唯一的恢复解决方案是 IISRESET /RESTART 命令。

    我的环境是:

    iis6在Windows 2003 x86 SP2上运行
    使用ASP.NET 4.0和C编写的网站#

    1 回复  |  直到 13 年前
        1
  •  0
  •   Kev    13 年前

    File.Move()

    File.Delete(FullSourceFilePath);
    File.Copy(FullTempFilePath, FullSourceFilePath);
    

    DebugDiag

    Tess Ferrandez' blog

    .NET Debugging Demos - Information and setup instructions