gpt4 book ai didi

c# - 写入事件日志时出错,阻止 Windows 服务启动?

转载 作者:可可西里 更新时间:2023-11-01 09:05:47 26 4
gpt4 key购买 nike

我正在使用以下代码在我的 windows 服务应用程序 中创建一个自定义事件日志:

public ServiceConstructor()
{
InitializeComponent();
if (!EventLog.SourceExists("WinService"))
{
EventLog.CreateEventSource("WinService", "WinServiceLog");
eventLog1.Source = "WinService";
eventLog1.Log = "WinServiceLog";
}
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("Started");
}

安装 service.msi 后,当我启动该服务时它启动然后停止。然后我在 EventViewer 窗口日志部分发现了以下错误:

Service cannot be started. System.ArgumentException: Source property was not set before writing to the event log.

at System.Diagnostics.EventLog.WriteEntry(字符串消息、EventLogEntryType 类型、Int32 eventID、Int16 类别、Byte[] rawData)
在 System.Diagnostics.EventLog.WriteEntry(字符串消息)
在 WinService.Service.OnStart(字符串 [] 参数)
在 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(对象状态)

最佳答案

如果源已经存在,看起来您没有初始化 eventLog1.Source。

建议您将初始化代码移至 OnStart 并移出构造函数。

并将这两行移出 if 语句:

eventLog1.Source = "WinService";
eventLog1.Log = "WinServiceLog";

关于c# - 写入事件日志时出错,阻止 Windows 服务启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253359/

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