我编写了一个自定义 Windows 服务,用于将数据写入自定义事件日志(在 Windows 事件查看器中)。
为了开发服务使用的业务逻辑,我创建了一个 Windows 窗体来模拟 Windows 服务的启动/停止方法。
当通过 Windows 窗体执行业务逻辑时,信息已成功写入我的自定义事件日志。但是,当我从自定义 Windows 服务运行相同的业务逻辑时,信息无法写入事件日志。
需要说明的是,我已经编写了一个库 (.dll),它可以执行我希望我的自定义服务执行的所有工作 - 包括创建/写入自定义事件日志。我的表单应用程序和我的 Windows 服务一样引用这个库。
以为问题是安全问题,我手动将自定义 Windows 服务设置为“以管理员身份登录”,但该服务仍然没有写入事件日志。
我什至不知道如何解决这个问题,因为我无法在运行服务时调试和单步执行代码(如果有调试服务的方法,请分享)。
对于可能导致我的服务无法写入事件日志的原因,您有什么想法吗?
最佳答案
我是这样用的。可能会有一些错别字。写在我的手机浏览器...
public class MyClass
{
private EventLog eventLog = new EventLog();
public void MyClass()
{
if (!System.Diagnostics.EventLog.SourceExists("MyLogSource"))
System.Diagnostics.EventLog.CreateEventSource("MyLogSource", "MyLogSource_Log");
eventLog.Source = "MyLogSource";
eventLog.Log = "MyLogSource_Log";
}
private void MyLogWrite()
{
eventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error);
}
}
关于c#-4.0 - 我的自定义 Windows 服务未写入我的自定义事件日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213424/