首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows窗体事件日志

Windows窗体事件日志
EN

Stack Overflow用户
提问于 2010-04-03 01:14:01
回答 3查看 9.8K关注 0票数 3

我正在从运行在Windows 7上的Windows窗体应用程序中写入事件日志,并在事件日志中获取此消息

无法找到源应用程序中事件ID X的说明。引发此事件的组件没有安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。 如果事件起源于另一台计算机,则显示信息必须与事件一起保存。 这次活动包括下列资料: 异常细节 存在消息资源,但在字符串/消息表中找不到消息。

我的日志代码是:

代码语言:javascript
复制
public void Log(Exception exc)
{
    EventLog.WriteEntry(
        "Application", 
        exc.ToString(), 
        EventLogEntryType.Error, 
        100);
}

我在Windows窗体上的日志通常是到DB上的,但在本例中决定使用事件日志。我通常在ASP.NET应用程序中使用事件日志,但是这些日志在本地XP Pro上,Windows 2003在web框上。

这是Windows 7的东西还是Windows窗体的东西,我应该怎么做才能解决这个问题?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-03 01:23:53

具体而言,请参见http://support.microsoft.com/kb/307024,不要忘记创建事件源。

票数 2
EN

Stack Overflow用户

发布于 2010-04-03 01:33:57

此重载中的第一个参数是“在指定计算机上注册应用程序的源”。如果此源是“应用程序”,则为“记录在这里”,您将得到此行为。(您是否错误地认为第一个参数引用了Windows日志: Application、Security等?)

要注册源,请执行以下操作:

代码语言:javascript
复制
public void Log(Exception exc){
    if(!EventLog.SourceExists("MySource"))
    {
        EventLog.CreateEventSource("MySource", "MyNewLog");
        return ;
    }
    EventLog.WriteEntry(
     "MySource", 
     exc.ToString(), 
     EventLogEntryType.Error, 
     100); }  
票数 0
EN

Stack Overflow用户

发布于 2012-05-03 09:34:28

这个解决方案是对我有效的:

在windows 7或Win 2008 R2的注册表中,该键下有一个键R2是该事件日志的所有注册有效源。

当您尝试用非有效的源(不是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\CustomEventLog)下的键)写入事件日志时,它会枚举其他事件日志键,以查看那里是否存在源。

我在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\CustomEventLog键下添加了所有丢失的源。只需在此键下创建现有密钥的副本,并将其重命名为EventSource。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2569913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档