小编给大家分享一下c#怎么编写Windows服务程序,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
<强>一、创建一个Windows服务强>
1)创建Windows服务项目
2)对服务重命名
将Service1重命名为你服务名称,这里我们命名为ServiceTest。
<强>二、创建服务安装程序强>
1)添加安装程序
之后我们可以看到上图,自动为我们创建了ProjectInstaller。cs以及2个安装的组件。
2)修改安装服务名
右键serviceInsraller1,选择属性,将名的值改为ServiceTest。
3)修改安装权限
右键serviceProcessInsraller1,选择属性,将账户的值改为LocalSystem。
<强>三,写入服务代码强>
1)打开ServiceTest代码
右键ServiceTest,选择查看代码。
2)写入服务逻辑
添加如下代码:
using 系统; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using 来; using System.ServiceProcess; using 包含; namespace WindowsServiceTest { public partial  class ServiceTest :, ServiceBase { public ServiceTest (), { InitializeComponent (); } protected override  void OnStart (string [], args), { 时间=using (System.IO.StreamWriter sw new System.IO.StreamWriter (“C: \ \ log.txt",,真的)), { sw.WriteLine (DateTime.Now.ToString (“yyyy-MM-dd  HH: mm: ss “), +,“开始!”); } } protected override  void 原(), { 时间=using (System.IO.StreamWriter sw new System.IO.StreamWriter (“C: \ \ log.txt",,真的)), { sw.WriteLine (DateTime.Now.ToString (“yyyy-MM-dd  HH: mm: ss “), +,“停!”); } } } }
这里我们的逻辑很简单,启动服务的时候写个日志,关闭的时候再写个日志。
<强>四、创建安装脚本强>
在项目中添加2个文件如下(必须是ANSI或者utf - 8无BOM格式):
1)安装脚本Install.bat
% SystemRoot % \ Microsoft.NET \ Framework \ v4.0.30319 \ installutil。exe WindowsServiceTest。exe净开始ServiceTest
sc配置ServiceTest开始汽车
=2)卸载脚本Uninstall.bat
% SystemRoot % \ Microsoft.NET \ Framework \ v4.0.30319 \ installutil。exe/u WindowsServiceTest.exe
3)安装脚本说明
第二行为启动服务。
第三行为设置服务为自动运行。
这两行视服务形式自行选择。
4)脚本调试
如果需要查看脚本运行状况,在脚本最后一行加入暂停
<强>五,在c#中对服务进行控制强>
0)配置目录结构
简历一个新WPF项目,叫WindowsServiceTestUI,添加对系统。ServiceProcess的引用。
在WindowsServiceTestUI的bin \调试目录下建立服务目录。
将WindowsServiceTest的生成目录设置为上面创建的服务目录。
生成后目录结构如下图
1)安装
安装时会产生目录问题,所以安装代码如下:
string CurrentDirectory =, System.Environment.CurrentDirectory; +=System.Environment.CurrentDirectory CurrentDirectory “\ \ Service"; Process Process =, new 过程(); 时间=process.StartInfo.UseShellExecute 假; 时间=process.StartInfo.FileName “Install.bat"; 时间=process.StartInfo.CreateNoWindow 真实; process.Start (); 时间=System.Environment.CurrentDirectory CurrentDirectory;c#怎么编写Windows服务程序