我正在尝试将自定义事件从我的 Web 应用程序写入 Windows 事件日志。我没有运气让消息字符串正常工作,我不断收到“无法找到源 Y 中事件 ID X 的描述”。
为了缩小范围,我决定将一个事件写入我的机器上已存在的源。我只是查看了已经写出的事件之一,特别是 SceCli 事件 1704。
我执行以下代码:
var log = new EventLog("Application");
log.Source = "SceCli";
var ev = new EventInstance(1704, 0, EventLogEntryType.Information);
log.WriteEvent(ev);
但是,这仍然在事件查看器中给出以下内容:
无法在源 (SceCli) 中找到事件 ID (1704) 的描述。本地计算机可能没有必要的注册表信息或消息 DLL 文件来显示来自远程计算机的消息。您可以使用 /AUXSOURCE= 标志来检索此描述;有关详细信息,请参阅帮助和支持。以下信息是事件的一部分:事件日志文件已损坏。
我不确定我在这里缺少什么。我正在写出已经存在的完全相同的事件,但它仍然找不到消息字符串。
我也面临类似的问题。经过大量研究后,我按照本文验证了步骤http://www.codeproject.com/Articles/4166/Using-MC-exe-message-resources-and-the-NT-event-lo http://www.codeproject.com/Articles/4166/Using-MC-exe-message-resources-and-the-NT-event-lo一切似乎都已就位。除了一件事......当我偶然发现这个 msdn 时我意识到了这一点http://msdn.microsoft.com/en-us/library/windows/desktop/aa363661(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa363661(v=vs.85).aspx
正如最后一段所述......“如果应用程序调用 RegisterEventSource 并传递在注册表中找不到的源名称,则事件日志记录服务默认使用应用程序日志。但是,由于没有消息文件,事件查看器无法将任何事件标识符或事件类别映射到描述字符串,并且将显示错误。因此,您应该向应用程序的注册表添加一个唯一的事件源,并指定一个消息文件。因此,我在 RegisterEventSource 中的应用程序名称与注册表中的应用程序名称不匹配。我修复了这个问题,现在它可以工作了...因此,如果您遇到此问题,请仔细检查您的注册表项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)