c# – “无法找到源Y中事件ID X的描述.”

我正在尝试将自定义事件从我的Web应用程序写入 Windows事件日志.我没有运气使消息字符串工作,我一直得到“无法找到源Y中的事件ID X的描述.”

在尝试缩小范围时,我决定将事件写入我的机器上已存在的源.我只看了一个已经写出来的事件,特别是SceCli事件1704.

我执行以下代码

var log = new EventLog("Application");
log.source = "SceCli";

var ev = new EventInstance(1704,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一切似乎都已到位.除了一件事……当我偶然发现这个msdn http://msdn.microsoft.com/en-us/library/windows/desktop/aa363661(v=vs.85).aspx时,我意识到了这一点

如上一段所述..’如果应用程序调用RegisterEventSource并传递在注册表中找不到的源名称,则事件日志记录服务认使用应用程序日志.但是,由于没有消息文件,因此事件查看器无法将任何事件标识符或事件类别映射到描述字符串,并且将显示错误.因此,您应该为应用程序的注册添加一个唯一的事件源,并指定一个消息文件.因此,我在RegisterEventSource中的应用程序名称注册表中的应用程序名称不匹配.我修复此问题,现在它可以工作……所以如果您遇到此问题,请仔细检查您的注册表项.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...