【问题标题】:Source name when writing to event viewer C#写入事件查看器 C# 时的源名称
【发布时间】:2012-03-07 12:34:34
【问题描述】:

使用 C# 语言写入事件查看器时如何更改源名称?

目前有这个

字符串 cs = "应用程序";

            if (!EventLog.SourceExists(cs))
            EventLog.CreateEventSource(cs, "ReceiveDaily");
            EventLog.WriteEntry(cs, message.Message, EventLogEntryType.Error);

如果我将 CS 更改为其他任何内容,我会在事件查看器中看到一个 Security-Kerberos (0x7) 弹出 当我输入“应用程序”时,它会在错误日志中写入错误。但是来源是“应用程序”,这不是一个很好的描述它的来源......

提前致谢。

【问题讨论】:

  • 您需要在管理员模式下运行您的应用程序才能创建事件源。
  • 以管理员身份登录就够了吗?
  • 除非您禁用用户帐户控制 (UAC),否则不会。

标签: c# event-log event-viewer


【解决方案1】:

正如@Phil 提到的,我认为除非您在管理员模式下运行,否则您不能动态创建事件源。

但是,如果您知道应用程序所需的源集,则可以使用 System.Diagnostics.EventLogInstallerInstallUtil.exe 预安装它们。然后这些源将可供您的应用程序使用。

This has a good example 设置安装程序。

【讨论】:

  • 您在管理模式下运行哪个文件,然后从资源管理器中运行?编码文件?
  • 我的意思是,你能以管理员身份调试吗?还是我应该先发布?
  • 您编译然后安装程序,从管理员命令提示符运行 installutil,并将编译后的全部作为第一个参数。
【解决方案2】:

您需要在管理员模式下运行您的应用程序。

您可以在资源管理器中通过右键单击您的应用并选择“以管理员身份运行”来执行此操作。

或者,您可以add a manifest 到您的应用,以便它在运行时自动请求管理员权限。

最后(从安全角度来看也是最糟糕的)选项是通过控制面板禁用 UAC。

【讨论】:

    猜你喜欢
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多