windows服务的编写及其如何安装到服务器上的过程
1、首先打开vs新建项目,选择windows服务,具体如下图:

2、默认会自动创建这几个文件,具体各自的作用不解释:

3、program中main函数中会实例化服务并启动,当部署后即可以自动执行了。下面我新建一个MyServiceDeal.cs类,来编写具体的服务中要实现的业务逻辑,此时的文档结构如下:

其中的业务代码可以自己实现:

为了实现调用此类的业务逻辑,则需要转到Service1.cs中的后台代码去重写OnStart方法,如下图:

至此,服务中的业务逻辑基本完成,下面是如何安装的问题,首先,返回Service1.cs的设计视图界面,右键窗体中任意处,选择“添加安装程序”:

然后会自动创建一个ProjectInstaller.cs的文件,其中包含两个组建(serviceProcessInstaller1和serviceInstaller1),如下图:

这里需要对这两个组建分别设置一下,具体的属性设置如下图:


选中serviceInstaller1组件,查看属性
设置ServiceName的值, 该值表示在系统服务中的名称
设置StartType, 如果为Manual则手动启动,默认停止,如果为Automatic为自动启动
设置Description,添加服务描述
到这里,当项目编译通过后,其实已经可以进行安装了,
但此时需要根据命令进行安装(下面还会介绍一种创建一个可以安装的exe程序)。先将使用命令进行安装的方法,首先找到此项目的bin文件下的两个文件(如果项目中还引用了第三方的dll文件,也需要一并拷贝到服务器中指定的文件夹下):

然后打开要安装的服务器的cmd窗口,具体的命令如下图:

然后到服务列表中可以看到安装后的服务:
可以继续输入命令进行启动或关闭或删除:
net start MyService -- 启动
net stop MyService -- 关闭
sc delete MyService -- 删除
dos方式2:
切换当前目录,此处需要注意的是,在C:\Windows\Microsoft.NET\Framework目录下有很多类似版本,具体去哪个目录要看项目的运行环境,例 如果是.net framework2.0则需要输入 cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
输入 InstallUtil.exe E:\TestApp\Winform\WinServiceTest\WinServiceTest\bin\Debug\WinServiceTest.exe 回车
说明
E:\TestApp\Winform\WinServiceTest\WinServiceTest\bin\Debug\WinServiceTest.exe表示项目生成的exe文件位置
注意:win7需要已管理员的身份启动,否则无法安装
接下来再使用exe安装包的形式进行可视化的安装操作,首先右击解决方案→选择新建项目→选择其他项目类型下的 Visual Studio Installer(VS中默认是没有这项的,需要先下载安装一下),如下图:

确定后会出现如下界面:

右击选择 Add→项目输出,然后默认点击确定:
然后再右击MyServiceSetup项目,选择 View→自定义操作:
然后分别设置Install和Uninstall,步骤是相同的,均需要右击文件夹,选择添加自定义操作,并做如下设置:

但需要注意的是,设置Uninstall时还需要额外增加一个设置,具体如下图:

至此,所有的设置均已完成,编辑生成后,找到debug文件夹下的文件,拷贝到服务器上,即可以双击exe文件进行安装了,十分简便:

好了,编写windows服务以及使用两种方法进行安装,就算都做完了。(需要注意的是:第二种安装方法,如果vs中下载安装的Visual Studio Installer中的.net framework版本可能是4.5的,而服务器上的framework是4.0的,那么此时,这种安装方式就会有问题了,安装时总会提示要下载安装framework4.5,若不想安装的话,最好使用第一种安装方式。)