【问题标题】:Determining what process has a lock on a file确定哪个进程锁定了文件
【发布时间】:2008-11-20 16:09:22
【问题描述】:

我有一个在本地运行良好的单元测试,但是当上传到 TeamCity 构建服务器时失败并显示“该进程无法访问该文件,因为它正被另一个进程使用。”

  1. 在我做任何测试之前 如果文件,我检查设置 存在,如果存在,请尝试将其删除。 这失败并出现相同的错误 消息如上
  2. 在编写 文件,然后我关闭编写器 处置它,我认为应该 摆脱任何资源。

所以我有几个问题

  1. 有没有人遇到过类似的问题并设法解决了这些问题
  2. 如何以编程方式找出什么 进程自私地锁定了 文件!!!

干杯

【问题讨论】:

标签: vb.net file-io teamcity


【解决方案1】:

Sysinternals handle.exe 是第一步。或使用Process ExplorerFind Handle or DLL。不过,杀死进程总是比关闭句柄更安全。

以编程方式,这是编写读取 Windows 句柄表的内核驱动程序的问题。

【讨论】:

    【解决方案2】:

    ProcessMon(用于查找)和Unlocker(至少用于解锁)也很有用。

    【讨论】:

      【解决方案3】:

      Sysinternals FileMon 提供了一些关于他们如何在旧 Windows 版本中实现此目的的信息(向下滚动)。

      Process monitor 是他们的最新版本,但它并没有提供很多关于他们如何做到这一点的线索。不过,那里链接了一些知识库文章,它们应该会引导您找到这些信息。

      -亚当

      【讨论】:

        猜你喜欢
        • 2010-10-26
        • 2011-01-29
        • 1970-01-01
        • 2013-07-17
        • 2010-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多