服务应用程序无法保持运行状态

3
我正在构建一个应用程序监控服务,将数据写入事件日志,以便我可以了解计算机的使用频率。我已经安装了该服务,但在尝试运行时出现以下错误信息:
“本地计算机上的应用程序监视器服务已启动,然后停止。例如性能日志和警报服务,一些服务会自动停止,如果它们没有工作要做。”
我尝试了while循环、鼠标活动等方法,但服务仍然无法持续运行。您有什么想法吗?
    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个回答

3

因为没有活动线程。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接