服务应用程序将无法继续运行

时间:2012-08-16 23:05:47

标签: c# windows service

我正在构建一个应用程序监视服务来写入事件日志,这样我就可以了解计算机的使用频率。我可以安装该服务,当我尝试运行它时,我收到此错误:

"本地计算机上的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.");
    }

1 个答案:

答案 0 :(得分:4)

因为没有活动线程。

您需要启动在您的服务的“OnStart”方法中进行轮询的线程。否则,当OnStart方法完成时,应用程序中没有活动线程,.Net CLR将关闭应用程序。

即使线程只是每30秒执行一次线程休眠,它也必须处于活动状态才能使应用程序保持打开状态。