系统进程(PID 4)在哪种情况下保留打开的文件句柄?

Dan*_*ski 27 winapi locking file handle

我在Windows服务器上运行的应用程序使用Jet/Access数据库.由于某些原因,每两周左右数据库文件被系统进程锁定(PID 4,似乎已修复)

经过一些谷歌搜索后,我发现其他一些用户的文件被特殊进程锁定,但不同的文件(当然).

  • 系统进程保持打开文件句柄的一般原因是什么?
  • 我的应用程序是导致这种锁定情况的原因吗?
  • 是否所有句柄都由系统进程隐式打开?我可以想象,在一个进程崩溃之后,句柄可能仍然是打开的,系统进程以某种方式取得了该处理的能力.
  • 我可以在我的应用程序中执行某些操作来防止它发生吗?

jan*_*000 42

通过共享访问的文件将被系统进程锁定(PID 4).

尝试打开compmgmt.msc- > 系统工具 - > 共享文件夹 - > 打开文件,查看是否列出了锁定文件

另请参阅sysinternals论坛以获取复制此方法的方法.
并非所有应用程序在打开时都会锁定文件,但Excel会这样做.我不知道Access是否也这样做......


Mai*_*ori 26

这是我发现的另一个可能的原因:

Windows 7中存在一个错误,可能在Windows Server 2008中(可能只有64位版本).当您禁用Application Experience服务时它会出现,并导致问题中描述的相同问题.

重新启用此服务已为我解决了这个问题.

这里有更多的信息,为什么它会导致问题.

似乎有关的其他SO问题清单:

  • +1这对我有用,我没有运行任何反病毒,所以这真的很奇怪. (2认同)
  • @ MahmoudAl-Qudsi不确定OP,但我个人发现了困难的方法:经过长时间的调整后,我禁用了大量的Windows服务,Steam(游戏应用程序)变得无法更新.它抱怨正在使用的文件.如果我没记错的话,Process Explorer会显示有问题的文件被explorer.exe或System使用,我发现它很奇怪.我最终重置了服务配置,问题就消失了.从那以后,我再一次禁用它们,直到找到了罪犯:/. (2认同)

dev*_*uff 7

这听起来像是一个漏洞处理的驱动程序级问题.

如果您正在运行防病毒软件包,请尝试升级,禁用(暂时!)或切换到其他品牌.


Sai*_*ali 6

它可能是从远程计算机到共享文件夹的延迟会话.如果是这种情况,可以从命令行解锁:

net session /delete
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

24446 次

最近记录:

8 年 前