创建项目
创建项目,在Windows下选择Windows服务(.NET Framework)。创建名称为indowsService_Test,如下图。
系统默认创建Service1.cs。 打开Serice1.cs的属性页,将ServiceName修改为ServiceTest,如下图:
添加定时器
在vs 主菜单中选“工具”项,再选“选择工具箱项”,再勾选命名空间为System.Timers的Timer,如下图: 现在在工具箱中可以看到Timer组件如下图所示。
将其拖入至Service1设计界面。将timer1的enabled 属性设置为true,Interval属性设置为1000。 双击timer1,自动生成timer1_Elapsed事件。
添加业务代码编辑Service1.cs,引入 System.Threading命名空间并修改代码如下:
public partial classService1 :ServiceBase { privateThread thdStart; privateint numTimes; public Service1() { InitializeComponent(); }
protected override void OnStart(string[] args) { thdStart = newThread(newThreadStart(timer1.Start)); thdStart.Start(); }
protectedoverridevoid OnStop() { }
privatevoid timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { this.timer1.Stop(); numTimes++; string filePath =@"c:\ServiceTest.log"; string strCont =DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") +"第" + numTimes +"次执行。"; System.IO.File.AppendAllText(filePath, strCont); this.timer1.Start(); } }
为WindowsService_Test添加安装程序在Service1设计界面下,右键弹出菜单,选择“添加安装程序” 在serviceProcessInstaller1属性页中将Account由User改为LocalSystem,
生成服务生成项目。 新建一个目录,将项目的\bin\Debug目录下生成的所有文件拷贝到该新的目录,再在该目录下建两个批出处理文件,文件名可分别为install.bat和uninstall.bat,内容分别如下: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe /i WindowsService_Test.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe /u WindowsService_Testr.exe 注意:如果由于某种原因而使生成的平台目标设为x86,则命令中的framework64要改成framework. 部署和卸载服务 以部署到windows server 2008服务器为例,先须安装NDP462-KB3151800-x86-x64-AllOS-ENU.exe即.netframework 4.6.2,如果在内网环境下安装.net4.6.2,则需要安装 7.选择下载好的cer文件,然后无限下一步。 NDP462-KB3151800-x86-x64-AllOS-ENU.exe安装完毕后,将上述的文件夹拷贝到服务器的磁盘上,运行其中的install.bat,然后再打开管理工具-服务,找到WindowsService_Test项,双击后点“启动”即可启动服务,往后服务启动时会自动启动该服务。 要卸载服务,只需要运行上述已经拷贝到服务器的磁盘中的文件夹内的uninstall.bat文件即可。 |
|