C#制作Windows service服务

Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称。用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Windows服务并使用它。这个服务在启动和停止时,向一个文本文件中写入一些文字信息。

 第一步:创建服务框架 
要创建一个新的 Windows 服务,可以从VS中 "新建项目"-"Windows"-" Windows 服务(Windows Service)",给工程一个新文件名,然后点击 确定。

项目自动添加了Service1.cs类:

其中各属性的含意是:

ü         Autolog                 是否自动写入系统的日志文件

ü         CanHandlePowerEvent     服务时候接受电源事件

ü         CanPauseAndContinue          服务是否接受暂停或继续运行的请求

ü         CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程

ü         CanStop                              服务是否接受停止运行的请求

ü         ServiceName                       服务名

 

第二步:向服务中增加功能 
Service1.cs代码文件中我们可以看到两个函数 OnStart和OnStop。

OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:

protected override void OnStart(string[] args)

{

 FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);

StreamWriter m_streamWriter = new StreamWriter(fs);

m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

m_streamWriter.WriteLine("mcWindowsService:         Service Started"+DateTime.Now.ToString()+"\n");

m_streamWriter.Flush();

m_streamWriter.Close();

fs.Close();

}

 

protected override void OnStop()

{

FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);

StreamWriter m_streamWriter = new StreamWriter(fs);

m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

m_streamWriter.WriteLine(" mcWindowsService: Service Stopped "+DateTime.Now.ToString()+"\n");

m_streamWriter.Flush();

m_streamWriter.Close();

fs.Close();

}

 第三步: 添加安装程序类

选择Service1.cs的Design视图模式,属性栏会出现“添加安装程序”连接,双击。

这时项目中自动添加了一个新类 ProjectInstaller(安装类) ,并且有两个组件 ServiceProcessInstaller 和 ServiceInstaller。

单击 ServiceInstaller 组件并将 StartType 属性设置为适当的值:

ü         Manual      服务安装后,必须手动启动。

ü         Automatic    每次计算机重新启动时,服务都会自动启动。

ü         Disabled     服务无法启动。

将serviceProcessInstaller类的Account属性改为 LocalSystem。这样,不论是以哪个用户登录的系统,服务总会启动。

 

第四步:创建服务安装程序(做法同普通windows项目的安装程序一样)

 只需添加一下文件:

msiexec.exe(卸载文件)位于Windows\System32下
start.bat(启动服务命令):

  echo off
net start "你的服务名称"
exit

stop.bat (停止服务命令):

  echo off
net stop "你的服务名称"
exit

在"用户的程序菜单",分别制作这前三个文件的快捷方式到这里


右键单击”卸载服务“(msexec.exe对应的快捷方式)输入一串值: 

其中"/x  "后面对应和数值来自Setup项目的
C#制作Windows service服务_第1张图片

 还必须在Setup右键"添加"-“自定义操作”。如下图:分别添加自定义操作,在应用程序文件夹中主输出即可.




OK,生成安装项目就可以安装了!!!

你可能感兴趣的:(C#制作Windows service服务)