原文地址

【CSDN上的原文地址】:http://blog.csdn.net/seven_coder/article/details/50957382


项目创建

在项目开发过程中,可能会要求编写windows服务,来自动执行一些代码。通过实际的项目使用,这里将简单记录一下windows服务的编写及其如何安装到服务器上的过程,当作一个备份。

1、首先打开vs新建项目,选择windows服务,具体如下图:

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

业务逻辑实现

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

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

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

安装windows服务方式一

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

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

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

到这里,当项目编译通过后,其实已经可以进行安装了,但此时需要根据命令进行安装(下面还会介绍一种创建一个可以安装的exe程序)。先将使用命令进行安装的方法,首先找到此项目的bin文件下的两个文件(如果项目中还引用了第三方的dll文件,也需要一并拷贝到服务器中指定的文件夹下):

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

然后到服务列表中可以看到安装后的服务:

可以继续输入命令进行启动或关闭或删除:

net start MyService    -- 启动

net stop MyService    -- 关闭

sc delete MyService   -- 删除


windows服务安装方式二,可视化安装

接下来再使用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,若不想安装的话,最好使用第一种安装方式。)


作者: 一蓑烟雨

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类: Windows服务
posted 阅读(92 ) 评论(1 )

评论内容: