您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 创建windows服务基本教程
WindowsService这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的。所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对WindowsService写很深入。本文介绍了如何用C#创建、安装、启动、监控、卸载简单的WindowsService的内容步骤和注意事项。一、创建一个WindowsService1)创建WindowsService项目2)对Service重命名将Service1重命名为你服务名称,这里我们命名为ServiceTest。二、创建服务安装程序1)添加安装程序之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。2)修改安装服务名右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。3)修改安装权限右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。三、写入服务代码1)打开ServiceTest代码右键ServiceTest,选择查看代码。2)写入Service逻辑添加如下代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.ServiceProcess;usingSystem.Text;namespaceWindowsServiceTest{publicpartialclassServiceTest:ServiceBase{publicServiceTest(){InitializeComponent();}protectedoverridevoidOnStart(string[]args){using(System.IO.StreamWritersw=newSystem.IO.StreamWriter(C:\\log.txt,true)){sw.WriteLine(DateTime.Now.ToString(yyyy-MM-ddHH:mm:ss)+Start.);}}protectedoverridevoidOnStop(){using(System.IO.StreamWritersw=newSystem.IO.StreamWriter(C:\\log.txt,true)){sw.WriteLine(DateTime.Now.ToString(yyyy-MM-ddHH:mm:ss)+Stop.);}}}}这里我们的逻辑很简单,启动服务的时候写个日志,关闭的时候再写个日志。四、创建安装脚本在项目中添加2个文件如下(必须是ANSI或者UTF-8无BOM格式):1)安装脚本Install.bat?123%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exeWindowsServiceTest.exeNetStartServiceTestscconfigServiceTeststart=auto2)卸载脚本Uninstall.bat?1%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe/uWindowsServiceTest.exe3)安装脚本说明第二行为启动服务。第三行为设置服务为自动运行。这2行视服务形式自行选择。4)脚本调试如果需要查看脚本运行状况,在脚本最后一行加入pause五、在C#中对服务进行控制0)配置目录结构简历一个新WPF项目,叫WindowsServiceTestUI,添加对System.ServiceProcess的引用。在WindowsServiceTestUI的bin\Debug目录下建立Service目录。将WindowsServiceTest的生成目录设置为上面创建的Service目录。生成后目录结构如下图1)安装安装时会产生目录问题,所以安装代码如下:?12345678stringCurrentDirectory=System.Environment.CurrentDirectory;System.Environment.CurrentDirectory=CurrentDirectory+\\Service;Processprocess=newProcess();process.StartInfo.UseShellExecute=false;process.StartInfo.FileName=Install.bat;process.StartInfo.CreateNoWindow=true;process.Start();System.Environment.CurrentDirectory=CurrentDirectory;2)卸载卸载时也会产生目录问题,所以卸载代码如下:?12345678stringCurrentDirectory=System.Environment.CurrentDirectory;System.Environment.CurrentDirectory=CurrentDirectory+\\Service;Processprocess=newProcess();process.StartInfo.UseShellExecute=false;process.StartInfo.FileName=Uninstall.bat;process.StartInfo.CreateNoWindow=true;process.Start();System.Environment.CurrentDirectory=CurrentDirectory;3)启动代码如下:?12345usingSystem.ServiceProcess;ServiceControllerserviceController=newServiceController(ServiceTest);serviceController.Start();4)停止?123ServiceControllerserviceController=newServiceController(ServiceTest);if(serviceController.CanStop)serviceController.Stop();5)暂停/继续?12345678ServiceControllerserviceController=newServiceController(ServiceTest);if(serviceController.CanPauseAndContinue){if(serviceController.Status==ServiceControllerStatus.Running)serviceController.Pause();elseif(serviceController.Status==ServiceControllerStatus.Paused)serviceController.Continue();}6)检查状态?12ServiceControllerserviceController=newServiceController(ServiceTest);stringStatus=serviceController.Status.ToString();六、调试WindowsService1)安装并运行服务2)附加进程3)在代码中加入断点进行调试
本文标题:创建windows服务基本教程
链接地址:https://www.777doc.com/doc-2651775 .html