创建一个简单WindowsService
1.创建一个项目:
选择windows 服务 名称为ServiceTest
2.重命名为ServiceTest
弹出下列弹框时选择是
3.添加安装程序:
双击
在设计窗口对应标签下右击 选择添加安装程序
右击 serviceInstaller1 选择属性
ServiceName修改为ServiceTest
右击 serviceProcessInstaller1 选择属性
Account修改为LocalService
4.编写代码 右击 ServiceTest.cs文件
选择查看代码
添加代码如下:
using System.ServiceProcess; namespace ServiceTest { public partial class ServiceTest : ServiceBase { public ServiceTest() { InitializeComponent(); } ////// 服务启动时 /// /// protected override void OnStart(string[] args) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E://ServiceLog.TXT")) { sw.WriteLine("{0}ServiceTest已经启动", System.DateTime.Now.ToString("yyyy-MM-dd:HH:mm:ss")); } } /// /// 服务停止时 /// protected override void OnStop() { using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E://ServiceLog.TxT")) { sw.WriteLine("{0}ServiceTest已经停止", System.DateTime.Now.ToString("yyyy-MM-dd:HH:mm:ss")); } } } }
添加安装批处理文件 Install.bat 到项目中 内容如下(使用记事本的话,请保存完ANSI格式,否则部分转义符号可能不被识别)
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe %~dp0\bin\Debug\ServiceTest.exe Net Start ServiceTest sc config ServiceTest start= auto pause
这个批处理的意思是 调用%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ 批处理安装程序 installutil.exe 安装批处理文件所在目录下的bin\Debug\ServiceTest.exe 程序
启动服务ServiceTest
并设置服务ServiceTest 为自动
pause 是让批处理执行完之后暂停已查看结果
添加卸载处理程序 UnInstall.bat 到项目中 内容如下(使用记事本的话,请保存完ANSI格式,否则部分转义符号可能不被识别)
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u %~dp0\bin\Debug\ServiceTest.exe pause
这个批处理的意思是 调用%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ 批处理安装程序 installutil.exe 卸载批处理文件所在目录下的bin\Debug\ServiceTest.exe 程序
pause 是让批处理执行完之后暂停已查看结果
整个目录如下:
生成一下整个项目 先运行Install.bat
服务已经启动成功了,查看日志
如果报错的话,请以管理员权限运行脚本
如果出现 服务无法启动 服务没有报告任何错误
多半是程序有问题,可以检查windows事件查看器