ASP.NET C#:从基于windows的服务器中删除文件(图像)的最佳方法

ASP.NET C#:从基于windows的服务器中删除文件(图像)的最佳方法,c#,asp.net,C#,Asp.net,我正在开发一个网站,用户可以上传图像。我正在将图像保存到FTP文件夹(不是数据库)中,并将其详细信息保存在数据库中(文件名、路径等) 我注意到,当在localhost上工作时,下面的代码工作得很好,它不会给我任何错误。但当上传到服务器(使用windows托管计划)时,它不会删除该文件,并给出错误提示:无法删除该文件,因为它被另一个进程使用。 我已确保该目录具有适当的文件权限,但它仍然不会删除它。奇怪的是,当我使用FTP客户端手动删除它时,它会锁定文件,不允许我从中删除。我必须回收应用程序池才能这

我正在开发一个网站,用户可以上传图像。我正在将图像保存到FTP文件夹(不是数据库)中,并将其详细信息保存在数据库中(文件名、路径等)

我注意到,当在localhost上工作时,下面的代码工作得很好,它不会给我任何错误。但当上传到服务器(使用windows托管计划)时,它不会删除该文件,并给出错误提示:
无法删除该文件,因为它被另一个进程使用。

我已确保该目录具有适当的文件权限,但它仍然不会删除它。奇怪的是,当我使用FTP客户端手动删除它时,它会锁定文件,不允许我从中删除。我必须回收应用程序池才能这样做

我正在寻找从基于windows的服务器上删除文件的最佳方法,当您拥有文件的完整路径时

我在localhost上使用的代码是(当上传到服务器时,它会破坏其余代码):


谢谢。

如果在重置应用程序池后可以删除该文件,则在上载该文件后,您似乎保留了对该文件的引用。您如何处理上载,以及上载后对文件执行哪些操作


更新:我发现其他一些人也有同样的问题,在调用
SaveAs(…)
后,上传的文件将被锁定


最后,在调用
SaveAs(…)
之前,文件似乎一直处于锁定状态,因此,如果您有一些服务器端验证来决定是否保存文件,那么问题可能就在那里?请注意,我没有对此进行测试。

我使用的是
AsyncFileUpload
控件,在
OnUploadedComplete
事件中,我将此控件保存到会话中,按下按钮后,我将会话转换为
AsyncFileUpload
,进行一些检查,然后使用“AsyncFileUpload1.PostedFile.SaveAs(Server.MapPath(path))'到FTP文件夹。就是这样。上传后我没有做任何其他事情。我应该在
.SaveAs
之后做些什么吗?谢谢
if (File.Exists(path))
{
    File.Delete(path);
}