.net framework windows服务结合定时任务坑点


建立.net windows服务的项目

在OnStart中使用定时任务

protected override void OnStart(string[] args)
        {
            Timer timer = new Timer();
            timer.Interval = 5 * 1000;
            timer.Elapsed += Timer_Elapsed;
            timer.Enabled = true;
            timer.Start();
        }

        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            File.AppendAllText(@"D:\Quartz.txt", "启动定时任务");
        }

        protected override void OnStop()
        {
            File.AppendAllText(@"D:\Quartz.txt", "停止定时任务");
        }

  发布项目

 一直到最后完成

找到对应的\obj\Debug的服务.exe文件运行会报错

 此时找到installutil.exe将此文件配置成环境变量

 打开cmd上 使用 installutil 服务.exe 命令此时

坑点(弹出用户名密码)

 此时在发布的项目上找到ProjectInstaller.cs文件

InitializeComponent()方法转到定义

 上文:this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;

此时再次执行 installutil 服务.exe 命令启动服务

坑点(无法停止服务)

在任务管理器上结束服务树 名称可能为:项目名称

在进行停止即可

相关