直接看自己的OnStart函数,时间好像不能超过20秒,20秒之后必须要执行完,不然就是上述错误。一般OnStart函数里面都会另外开一个线程
然后在OnStop函数获取停止的事件,然后进行一些操作
如果要是关机等其他事件,一般是指OS关闭了,比如关机等,在以下程序中捕获        protected override void OnShutdown()
        {
            Logger.Warn("此程序异常关闭,可能是操作系统关闭了或者系统关机了");
            base.OnShutdown();
        }