我有一套夜间报告。
有时会出现异常:
该进程无法访问文件,因为它正被另一个进程使用。
我如何确定是哪个进程正在持有该文件?我认为可能是 McAfee,但需要证明。
我有一套夜间报告。
有时会出现异常:
该进程无法访问文件,因为它正被另一个进程使用。
我如何确定是哪个进程正在持有该文件?我认为可能是 McAfee,但需要证明。
使用类似于Process Explorer或Process Monitor的工具。
Attachment data = new Attachment(@"c:\filename");
'send email....
data.Dispose();
确认。我遇到了类似的问题,也按照Greg所说的做了。
在发送消息后的finally
块中,我只需加入以下代码即可释放文件句柄:
foreach(Attachment a in message.Attachments) a.Dispose();
以下是一些工具,可以告诉你哪些文件被锁定并解锁它们: http://ccollomb.free.fr/unlocker/
Filemon 可能是你正在寻找的工具。
(或者甚至是 Process Monitor,它显然已经取代了 FileMon。)
我刚遇到了同样的问题,但在我的情况下,我试图在Visual Studio 2012中删除一个.mdf文件。关于错误的信息不多,无法帮助我解决这个问题,所以我来这里寻求帮助。然后我意识到,即使是类似的问题,我也必须处理不同的过程。
我所做的就是尝试在Windows资源管理器中删除.mdf文件,然后它给了我一个错误,说SQL Server 2008 R2实际上仍然持有该文件,即使我已经删除了数据库。一旦我知道了这一点,我所要做的就是关闭SQL Server 2008 R2,然后再次尝试删除该文件,这样就可以了。
如果您需要关于如何打开和关闭SQL Server 2008 R2的说明,请参见下面的链接。
我试图启动一个Java程序,但收到了一条消息。在任务管理器中查看,已经有一个Java任务正在运行(循环?)当我杀死该进程后,我的进程才能运行。