当我们中止在Windows slave上运行的Jenkins Job构建之一,然后尝试重新触发时,新的触发构建将失败,并显示以下错误:
删除工作区时该进程无法访问该文件,因为该文件正由另一个进程使用。
。
答案 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);
}