我有一个应用会定期将数据写入本地磁盘文件。它总是打开、写入,然后关闭文件。最近我遇到了一个问题,它停止写入数据,这是因为它由于共享冲突而无法打开文件。这种情况似乎是永久性的。
进程资源管理器显示了进程 PID 4 所持有的文件的句柄System
。当我强制关闭此句柄时,我的应用程序立即恢复正常运行。
现在我有点怀疑了,因为这个文件也可以从网络上的其他机器访问,但这个文件总是短暂地打开然后再次关闭,并且总是带有“RW-”标志,而这个应用程序的设计就是为了应对来自其他地方的这些短暂访问。进程资源管理器显示,保持文件打开的句柄的标志为“R--”。
我的问题是:我如何才能找到有关该System
进程拥有的句柄的更多信息,以及哪种进程可能保持文件打开,以至于我无法写入它?
答案1
您可能猜对了,该文件是通过网络访问的。我猜测的其他原因可能是索引服务或防病毒软件,但我认为这些都不会显示为“系统”。
我认为没有任何方法可以比进程资源管理器获得有关句柄的更多信息。
也许您的应用程序“设计用于处理来自其他地方的这些简短访问”的方式存在错误?您可以在代码审查并询问人们是否发现任何问题。