我安装了NT服务,并将有关'message.dll'文件的信息添加到EvenLog的注册表中。 HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\事件日志\应用程序\ MyApp的 EventMessageFile = C:\ message.dll
在EventLog查看器中启动服务并查看服务的日志信息消息。 工作正常。
接下来,卸载服务并尝试删除message.dll文件。 失败!我收到'Access deny'消息框,因为已加载此DLL。
我的问题:在我的情况下如何正确删除/卸载/卸载message.dll?
非常感谢, 梅德
答案 0 :(得分:1)
在卸载之前,您是否停止了服务?在卸载服务器之前关闭EventLog查看器吗?这是两个典型的错误,可以跟随message.dll继续使用。
如果您遇到问题,我建议您使用Process Explorer查找保存dll的进程。 Ctrl + F 或菜单“查找”/“查找句柄或DLL ...”可用于查找使用DLL的进程。
答案 1 :(得分:0)
Windows事件查看器将dll打开以读取消息。
但是-并不是唯一的事件日志阅读器。 RMM软件(例如ConnectWise,Naverisk等)也会监视事件日志,并可能阻止您的软件升级锁定的EventMessageFile
dll文件。
涉及第三方软件时,按照已接受的答案关闭MMC.exe是不可行的。
我发现了两种解决方法:
停止使用EventMessageFile
系统,而仅使用内置的EventCreate.exe作为源文件
使用Restart Manager子系统积极地重启第三方RMM服务,如Windows Event Viewer holds a lock on my EXE file