写入新事件日志源时,用C#编写的服务失败

时间:2017-09-18 16:07:03

标签: c# service

给出以下代码

        InitializeComponent();

        try
        {
            if (!System.Diagnostics.EventLog.SourceExists(this.ServiceName))
            {
                System.Diagnostics.EventLog.CreateEventSource(
                    this.ServiceName, "ProfileWatcherLog");
            }
            profileWatcherLog.Source = this.ServiceName;
            profileWatcherLog.Log = "ProfileWatcherLog";
        }
        catch (Exception e)
        {
            profileWatcherLog.WriteEntry(String.Format("ERROR: {0}",e.Message));

        }
        finally
        {
            profileWatcherLog.WriteEntry("Profile Watcher setup");
        }

如果我使用已经存在的事件日志源,它可以正常工作,但是如果我尝试使用该应用程序的事件源,那么它就会失败。

我甚至尝试了以下方法;它使用了profileWatcherLog和ServiceName的属性,但仍然失败。

            if (!System.Diagnostics.EventLog.SourceExists(this.ServiceName))
            {
                System.Diagnostics.EventLog.CreateEventSource(
                    this.ServiceName, profileWatcherLog.Log);
            }
            profileWatcherLog.Source = this.ServiceName;

有人看到我做错了吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

您只需重新启动计算机即可。

  

如果源已映射到日志并将其重新映射到新日志,则必须重新启动计算机才能使更改生效。

https://msdn.microsoft.com/en-us/library/2awhba7a.aspx