我有一个使用 EventLog 进行日志记录的 Windows 服务应用程序。在应用程序安装程序中我运行:
eventcreate /L APPLICATION /SO "My App" /T SUCCESS /id 1 /D "Initialised Log"
Run Code Online (Sandbox Code Playgroud)
然后在我的 C# 应用程序记录器中执行以下操作:
EventLog.WriteEntry(message, EventLogEntryType.Error, 1, 0, details);
Run Code Online (Sandbox Code Playgroud)
但是,当我查看应用程序事件日志时,除了我的事件之外,我还看到 EventID 0 的条目。我无法使用 eventcreate 创建 ID=0 条目(表示 ID 必须 >=1)。那么是什么造成了这些事件呢?有什么方法可以阻止事件日志抱怨安装损坏吗?
一个示例条目说:
该活动包含以下信息:
服务启动成功。
消息资源存在,但在字符串/消息表中找不到该消息
你得到的文本:
找不到来自源 myApp 的事件 ID 0 的描述。您的本地计算机上未安装引发此事件的组件或安装已损坏。您可以在本地计算机上安装或修复该组件。
在所有事件日志条目前面,后面跟着正确的错误?
我在使用 eventcreate 后遇到了这个问题,只能通过编辑注册表来摆脱
HKLM\System\CurrentControlSet\Services\Eventlog\Application\MyEventSource
customSource (1)
EventMessageFile %SystemRoot%\System32\EventCreate.exe
TypesSupported (7)
Run Code Online (Sandbox Code Playgroud)
我把这个改成
EventMessageFile C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
Run Code Online (Sandbox Code Playgroud)
然后我所有的事件日志条目(甚至是旧的)看起来都不错,没有抱怨腐败
| 归档时间: |
|
| 查看次数: |
10279 次 |
| 最近记录: |