Windows事件日志 – 事件ID 0

我有一个使用EventLog进行日志logging的Windows服务应用程序。 在应用程序安装程序中,我运行:

eventcreate /L APPLICATION /SO "My App" /T SUCCESS /id 1 /D "Initialised Log" 

然后在C#中的应用程序logging器中,我执行:

 EventLog.WriteEntry(message, EventLogEntryType.Error, 1, 0, details); 

但是,当我在应用程序事件日志看,除了我的事件,我看到EventID 0的条目。我不能使用eventcreate创build一个ID = 0条目(说ID必须> = 1)。 那么创build这些事件是什么? 有没有什么办法阻止事件日志抱怨损坏的安装?

一个例子说:

活动中包含以下信息:

服务已成功启动。

消息资源存在但消息在string/消息表中找不到

ServiceBase类具有属性AutoLog ,默认情况下为true 。 这意味着它会自动报告状态变化,如开始,停止,暂停和继续。 MSDN文档在这里 。

如果要将信息报告给自定义日志而不是应用程序日志,或者要禁止这些事件日志条目,则应在构造函数中将AutoLog设置false

你是否得到了文字:

无法找到来自源myApp的事件ID 0的说明。 引发此事件的组件未在本地计算机上安装,或者安装已损坏。 您可以在本地计算机上安装或修复组件。

在所有的事件日志条目前,按照正确的错误?

我使用eventcreate后,只能通过编辑注册表摆脱

 HKLM\System\CurrentControlSet\Services\Eventlog\Application\MyEventSource customSource (1) EventMessageFile %SystemRoot%\System32\EventCreate.exe TypesSupported (7) 

我改变了这个

 EventMessageFile C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll 

然后我所有的事件日志条目(甚至是旧的条目)都看起来不错,没有抱怨腐败