事件簿。卸载EventMessageFile(DLL)

时间:2011-01-12 09:55:22

标签: winapi event-log

我安装了NT服务,并将有关'message.dll'文件的信息添加到EvenLog的注册表中。 HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\事件日志\应用程序\ MyApp的    EventMessageFile = C:\ message.dll

在EventLog查看器中启动服务并查看服务的日志信息消息。 工作正常。

接下来,卸载服务并尝试删除message.dll文件。 失败!我收到'Access deny'消息框,因为已加载此DLL。

我的问题:在我的情况下如何正确删除/卸载/卸载message.dll?

非常感谢, 梅德

2 个答案:

答案 0 :(得分:1)

在卸载之前,您是否停止了服务?在卸载服务器之前关闭EventLog查看器吗?这是两个典型的错误,可以跟随message.dll继续使用。

如果您遇到问题,我建议您使用Process Explorer查找保存dll的进程。 Ctrl + F 或菜单“查找”/“查找句柄或DLL ...”可用于查找使用DLL的进程。

答案 1 :(得分:0)

Windows事件查看器将dll打开以读取消息。

但是-并不是唯一的事件日志阅读器。 RMM软件(例如ConnectWise,Naverisk等)也会监视事件日志,并可能阻止您的软件升级锁定的EventMessageFile dll文件。

涉及第三方软件时,按照已接受的答案关闭MMC.exe是不可行的。

我发现了两种解决方法:

  1. 停止使用EventMessageFile系统,而仅使用内置的EventCreate.exe作为源文件

  2. 使用Restart Manager子系统积极地重启第三方RMM服务,如Windows Event Viewer holds a lock on my EXE file

  3. 中所述