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

问题描述 投票:0回答:2

当我们中止在 Windows Slave 上运行的 Jenkins 作业构建之一,然后尝试重新触发时,新触发的构建失败并出现以下错误:

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

删除工作区时。

jenkins build process
2个回答
0
投票

可能当构建作业被终止时,它生成的某些进程没有随之被终止,并且该进程正在保持打开的文件。

该进程通常会自行完成运行,当它完成时,文件上的锁定将被释放。

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

如果您无权访问,您可能必须要求系统管理员重新启动从属设备 - 这很可能有点矫枉过正,但如果您无权访问从属设备,您必须寻求帮助的人可能没有太多时间来帮助您。帮助调试。


0
投票

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

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

using(Attachment attpath = new Attachment(filepath))
{
    //your code to access the attached filepath
    mail.Attachment(attpath);
}
© www.soinside.com 2019 - 2024. All rights reserved.