转:http://www.cr173.com/html/15350_1.html
本文介绍了如何用C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。
一、创建一个Windows Service
1)创建Windows Service项目
2)将.net环境改成2.0
3)对Service重命名
将Service1删除,重新添加一个服务,这里我们命名为ServiceTest。
二、创建服务安装程序
1)添加安装程序
之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。
2)服务名称
ServiceName的值为服务发的名称
3)修改安装权限
右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。
三、写入服务代码
1)打开ServiceTest代码
右键ServiceTest,选择查看代码。
2)写入Service逻辑
添加如下代码:
namespace WindowsServiceTest
{
public partial class ServiceTest : ServiceBase
{
public ServiceTest()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
} protected override void OnStop()
{
}
}
}
四、服务的安装
服务安装和卸载要用到.net平台下面的一个文件InstallUtil.exe,在不同的.net版本项目下面要使用不同的InstallUtil,所以要注意项目.net的版本和目标机器的版本是否一致。在.net 2.0的环境下面InstallUtil.exe文件目录是:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe
在命令提示符中使用下面的格式去安装和卸载服务,FilePath上面服务的bin下面的exe文件。安装成功后,服务的名称为:ServiceTest。
安装:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe FilePath/xx.exe
卸载:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe -u FilePath/xx.exe
注:
一个服务首先是一个Win32可执行程序,或者是是rundll32.exe来运行一个.dll的方式形成的进程。跟普通应用程序不一样,如打开WORD,有一个界面出来,但服务没有用户界面,也不能通过直接双击运行相应的.exe程序来运行。
为Windows服务程序没有用户界面,所以基于用户界面的API函数对其是没有多大的意义。为了能使一个Windows服务程序能够正常并有效的在系统环境下工作,程序员必须实现一系列的方法来完成其服务功能。Windows服务程序的应用范围很广,典型的Windows服务程序包含了硬件控制、应用程序监视、系统级应用、诊断、报告、Web和文件系统服务等功能。
服务应用程序在不同于登录用户的交互区域的窗口区域中运行。窗口区域是包含剪贴板、一组全局原子和一组桌面对象的安全对象。由于 Windows 服务的区域不是交互区域,因此服务应用程序中引发的对话框将是不可见的,并且可能导致程序停止响应。同样,错误信息应记录在事件日志中,而不是在用户界面中引发。所以如果希望在服务中弹出提示框是不现实的,可以用托盘程序来代替服务。