我对某件事很好奇。我正在开发一个Windows服务,并将所有诊断事件记录到Windows事件日志中。因此,当服务正在运行时,我打开事件查看器(从管理工具中)来查看我的服务操作的结果。
这很好用,除了在需要卸载我的程序时(再次为测试目的),出现问题。由于某种奇怪的原因,事件查看器锁定了我的服务的.exe映像文件,因此卸载程序无法删除它,错误代码为ERROR_SHARING_VIOLATION
:
The process cannot access the file because it is being used by another process.
这只发生在Vista及更高版本的操作系统上,似乎在XP上不是问题。
有什么办法可以让事件查看器释放文件锁定?(我在询问编程方法。我显然可以手动关闭它,但那不是我想要的。)
acrotray.exe
或那些本应该成为AVP的东西。此外,即使需要访问资源,事件查看器也没有理由保持文件锁定。它可以读取它们然后释放文件锁定(基本上就像在XP中一样)。 - c00000fdsvchost.exe
的锁:Windows Audio
、DHCP Client
、Windows Event Log
、TCP/IP NetBIOS Helper
、Security Center
、Task Scheduler
。任务计划程序和Windows音频?真的吗? - c00000fd