gpt4 book ai didi

c# - "The description for Event ID X in Source Y cannot be found."

转载 作者:可可西里 更新时间:2023-11-01 14:25:02 26 4
gpt4 key购买 nike

我正在尝试将我的 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一切似乎就绪。除了一件事..当我偶然发现这个 msdn http://msdn.microsoft.com/en-us/library/windows/desktop/aa363661(v=vs.85).aspx 时我意识到了这一点

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

关于c# - "The description for Event ID X in Source Y cannot be found.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com