该进程无法访问该文件,因为该文件正由另一个进程使用。詹金斯建造

时间:2017-12-28 11:04:05

标签: jenkins build process

当我们中止在Windows slave上运行的Jenkins Job构建之一,然后尝试重新触发时,新的触发构建将失败,并显示以下错误:

  

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

删除工作区时

2 个答案:

答案 0 :(得分:0)

当构建作业被杀死时,它产生的某个进程可能没有被杀死,而且该进程正在打开文件。

通常该过程将自行完成运行,当它完成时,将释放对文件的锁定。

如果进程没有自行消失(例如,如果它打开了一个窗口,例如您在进程崩溃时看到的弹出窗口 - 并且您将无法在Jenkins服务会话中看到此类窗口运行并且您可以访问从属计算机,您可以登录并使用SystemInternals的Process Explorer(https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer处提供的)等工具来查找并终止该进程。 ProcExp是一个非常容易使用的工具,知名度很高,非常适合这种情况。

如果您没有访问权限,则可能需要让系统管理员重新启动从属设备 - 这很可能是矫枉过正的,但如果您无法访问从设备,那么您需要请求帮助可能没有太多时间来帮助调试。

答案 1 :(得分:0)

由于性能问题可能会发生此错误,在这种情况下我们只需要使用循环来避免这种情况,因为当前线程必须在访问另一个进程之前关闭。

您可以使用给定的方法访问要附加邮件的文件,如下所示:

using(Attachment attpath = new Attachment(filepath))
{
    //your code to access the attached filepath
    mail.Attachment(attpath);
}