我正在构建一个应用程序监视服务来写入事件日志,这样我就可以了解计算机的使用频率。我可以安装该服务,当我尝试运行它时,我收到此错误:
"本地计算机上的Application Monitor服务已启动然后停止。如果没有工作要做,某些服务会自动停止,例如性能日志和警报服务。"
我尝试了一段时间循环,鼠标活动等等......但它一直在结束。关于我能做什么的任何想法?
public ApplicationMonitor()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("Activity Usage"))
{
System.Diagnostics.EventLog.CreateEventSource("Activity Usage", "Computer Log");
}
eventLog1.Source = "Activity Usage";
eventLog1.Log = "Computer Log";
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
}
protected override void OnStop()
{
eventLog1.WriteEntry("In onStop.");
}
protected override void OnContinue()
{
eventLog1.WriteEntry("In OnContinue.");
}
答案 0 :(得分:4)
因为没有活动线程。
您需要启动在您的服务的“OnStart”方法中进行轮询的线程。否则,当OnStart方法完成时,应用程序中没有活动线程,.Net CLR将关闭应用程序。
即使线程只是每30秒执行一次线程休眠,它也必须处于活动状态才能使应用程序保持打开状态。