【发布时间】:2020-12-17 13:42:20
【问题描述】:
当我尝试启动服务时,出现以下错误:
服务无法启动。 System.ArgumentException:源“Bar 源”未在日志“Bar2”中注册。 (这是 已在日志“条源”中注册。)“源和日志属性 必须匹配,或者你可以将 Log 设置为空字符串,它会 自动匹配到 Source 属性。 在 System.Diagnostics.EventLogInternal.VerifyAndCreateSource(字符串 源名称,字符串当前机器名称) 在 System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] 原始数据) 在 System.Diagnostics.EventLog.WriteEntry(字符串消息) 在 C:\Program Files (x86)\Bar 中的 Bar.Service1.writeToLog(String msg) - 用于 APPS\Service1.vb:line 292 在 C:\Program Files (x86)\Bar 中的 Bar.Service1.OnStart(String[] args) - 用于 APPS\Service1.vb:line 37 在 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(对象 州)
有谁知道是什么导致了这个问题?我在代码中没有提到Bar2,程序文件中的文件夹名为“Bar2”,但我将其更改为“Bar”。
请指教!
这是WriteToLog 函数:
Private Sub writeToLog(ByVal msg As String)
Dim evtLog As New EventLog
If Not Diagnostics.EventLog.SourceExists("Bar") Then
Diagnostics.EventLog.CreateEventSource("Bar", "Log of Bar")
End If
evtLog.Source = "Bar"
evtLog.Log = "Log of Bar"
evtLog.WriteEntry(msg)
End Sub
【问题讨论】:
-
尝试将
Dim evtLog As New EventLog移到if语句后看看是否有帮助?
标签: .net