该进程无法访问该文件,因为该文件正由另一个进程使用
我有一套夜间报道。
有时我得到例外:
该进程无法访问该文件,因为该文件正由另一个进程使用
如何判断文件中包含哪些进程? 我认为这是迈克菲,但我需要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();
- Process Explorer >查找>查找句柄>键入文件名。
- 解锁者 。 尝试打开它,如果它有锁,解锁器将打开并显示锁定它的程序。
处理后的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 。)