我的应用程序在运行在Windows服务器上,使用Jet/Access数据库。由于某些原因,大约每两周这个数据库文件会被系统进程(PID 4,似乎是固定的)锁定。
通过一些谷歌搜索,我发现一些其他用户也有他们的文件被该特殊进程锁定,但不同的文件(当然)。
- 系统进程保持打开文件句柄的常见原因是什么?
- 我的应用程序是否导致了这种锁定情况?
- 所有句柄都是由系统进程隐式打开的吗?我可以想象,在一个进程崩溃后,句柄可能仍然打开,而系统进程以某种方式占有了那个句柄。
- 我能在我的应用程序里做些什么来防止它发生吗?
handle
或procexp
无法关闭文件,尽管它们告诉我问题出在哪里,让我能够找到答案。我的问题发生在通过Hyper-V在Windows上运行docker
时。在docker中运行的服务器创建了一个文件,随后被system
进程锁定。感谢您的回答。 - kumarharsh