在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
上一篇介绍了利用模板创建、安装以及卸载Windows服务,本篇继续研究这个话题,不过是创建控制台程序,使用Windows.TaskSchedule.exe安装。 为什么要使用控制台程序?——调试简单粗暴。哈哈。 创建控制台应用程序项目后,我们编辑服务主体代码,我们继续向文本文件中写入一句话。 在实现具体逻辑前,我们需要引用Windows.TaskSchedule.Extends.dll,服务类继承 IJob 。 1 using System; 2 using System.Configuration; 3 using System.IO; 4 using Windows.TaskSchedule.Extends; 5 6 namespace MyWindowsTaskSchedule 7 { 8 /// <summary> 9 /// 具体服务逻辑实现 10 /// </summary> 11 public class Test : IJob 12 { 13 public void Excute() 14 { 15 //throw new NotImplementedException(); 16 FileStream fs = new FileStream(ConfigurationManager.AppSettings["LogFile"].ToString(), FileMode.OpenOrCreate, FileAccess.Write); 17 StreamWriter sw = new StreamWriter(fs); 18 sw.BaseStream.Seek(0, SeekOrigin.End); 19 sw.WriteLine(string.Format("\"MyWindowsTaskSchedule\" Windows Service Run At {0} \n", DateTime.Now.ToString())); 20 sw.Flush(); 21 sw.Close(); 22 fs.Close(); 23 } 24 25 public void Init() 26 { 27 //throw new NotImplementedException(); 28 } 29 30 public void OnError(Exception ex) 31 { 32 //throw new NotImplementedException(); 33 } 34 } 35 } 主程序入口调用服务 1 namespace MyWindowsTaskSchedule 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 var test = new Test(); 8 test.Excute(); //运行服务 9 } 10 } 11 } 编译程序,bin目录的文件就是服务即将要跑的。
那么问题来了,我怎么跑?
我先附上一个截图再做简单说明。 Bin目录:存放控制台编译后的文件,包括配置文件。 Configs目录:两个配置文件Jobs.config和NLog.config Jobs.config配置如下: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <Jobs serverName="my-service" displayName="我的服务" description="我的服务描述"> 3 <Job name="我的服务一" exePath="${basedir}\Bin\MyWindowsTaskSchedule.exe" arguments="1" cornExpress="0/2 * * * * ?" expireSecond="300" /> 4 </Jobs> serverName:服务在任务管理器中显示的名称 displayName:服务在服务列表中显示的名称 Job节点:各个任务的具体配置,name建议唯一,exePath任务路径,cornExpress任务执行频率 实际应用中,我们需要修改Jobs.config,NLog.config可以不动。
安装服务.bat 1 F:\maiaimei\WindowsService\MyWindowsTaskSchedule\Demo\Windows.TaskSchedule.exe install 2 F:\maiaimei\WindowsService\MyWindowsTaskSchedule\Demo\Windows.TaskSchedule.exe start 3 pause 卸载服务.bat 1 F:\maiaimei\WindowsService\MyWindowsTaskSchedule\Demo\Windows.TaskSchedule.exe stop 2 F:\maiaimei\WindowsService\MyWindowsTaskSchedule\Demo\Windows.TaskSchedule.exe uninstall 3 pause 以上两个批处理命令,Windows.TaskSchedule.exe前面一大串,请根据需要调整。 其他文件直接拷贝过来即可。
万事俱备后(上面那个Demo目录截图),我们以管理员身份运行“安装服务.bat”,如下: 然后,我们可以在服务列表及任务管理器中检查
如果运行“卸载服务.bat”,效果如下: 源码及Demo下载:https://github.com/maiaimei/WindowsTaskSchedule 参考网址: |
请发表评论