该进程无法访问该文件,因为该文件正由另一个进程使用

我有一套夜间报道。

有时我得到例外:

该进程无法访问该文件,因为该文件正由另一个进程使用

如何判断文件中包含哪些进程? 我认为这是迈克菲,但我需要certificate这一点。

问题是.NET中的MailMessage持有文件附件。 我不得不对附件进行处理然后才有效。

使用Process Explorer或Process Monitor之类的工具。

Attachment data = new Attachment(@"c:\filename"); 'send email.... data.Dispose(); 

这里有一些工具可以告诉和解锁锁定的文件: http : //ccollomb.free.fr/unlocker/

证实。 我有类似的问题,并做了格雷格所说的。

在发送消息后的finally块中,我只是把它放在那里,它释放了文件句柄:

 foreach(Attachment a in message.Attachments) a.Dispose(); 
  1. Process Explorer >查找>查找句柄>键入文件名。
  2. 解锁者 。 尝试打开它,如果它有锁,解锁器将打开并显示锁定它的程序。

处理后的GC.Collect()应该修复它

我试图启动一个Java程序并得到消息。 查看任务管理器,当我杀死该进程时,已经有一个Java任务正在运行(循环?),我的进程能够运行。

我只是有同样的问题,但在我的情况下,我试图删除Visul Studio 2012中的.mdf文件。没有太多关于错误的信息,以帮助我解决这个问题,所以我来到这里寻求帮助。 然后我意识到即使它是一个类似的问题,它也是一个我必须处理的不同过程。

我做的是尝试删除Windows资源管理器中的.mdf文件,然后我给了我一个错误,即SQL Server 2008 R2实际上保留了该文件,即使我删除了数据库。 一旦我新了,我所要做的就是关闭SQL Server 2008 R2并尝试再次删除该文件并且它有效。

如果您需要有关如何打开和关闭SQL Server 2008 R2的说明,请参阅下面的链接。

打开和关闭SQL Server

Filemon可能是您正在寻找的工具。

(甚至显然已取代FileMon的Process Monitor 。)