微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中的应用程序名称注册表中的应用程序名称不匹配.我修复此问题,现在它可以工作……所以如果您遇到此问题,请仔细检查您的注册表项.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐