一、 VS2012下开发Windows服务

1、 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图:

2、 创建好后,编译器会自动创建一些文件,其中会有一个Service1类文件,该文件是服务的关键,我们可以将其重命名,这里我将其命名为MainService,如下图:

3、 在MainService的后台代码中会自动创建一些方法,包括服务的启动和停止方法等,如下图:

4、 将服务启动时要执行的操作放在OnStart方法中,服务停止时要执行的操作放在OnStop方法中

5、 在MainService.cs设计器中,单击邮件,选择选择添加安装程序,便会生成一个ProjectInstaller.cs的文件,如图所示:

6、 设置ProjectInstaller.cs的属性,切换到属性设置界面

(1) 选择serviceInstaller1,并设置相应属性如下图所示:

其中:Description属性用于设置服务安装之后再服务界面上显示的描述信息;

DisplayName属性用于设置服务安装之后再服务界面上显示的服务名称;

ServiceName属性用于设置服务的名称,此名称必须与ServiceBase类的ServiceName属性设置的名称一致,该名称用于系统标识此服务,可以理解成DisplayName为ServiceName的别名;

StartType属性用于设置服务的启动方式。

(2) 选择serviceProcessInster1,设置其属性如下:

此处主要设置Account属性,该属性用来指示运行该服务时的账户类型,一般设置为LocalSystem。

7、 到此步一个简单的windows服务就创建好了,编译程序会生成一个EmailService.exe的可执行文件,接下来便是安装服务了。

二、Windows服务的安装

Windows服务的安装有多种方式,比如可以再cmd下调用命令来安装,也可以写一个安装程序来安装,此处介绍使用bat批处理来安装。

1、 安装Windows服务需要用到InstallUtil.exe程序,该程序位于:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 .NET4.0

C:\Windows\Microsoft.Net\Framework64\v2.0.50727 .NET2.0

2、 我们可以再批处理命令中直接调用以上目录中的InstallUtil.exe程序,也可以将该程序拷贝到应用程序的目录下,此处我选择奖该程序拷贝到应用程序的目录下,同时将批处理文件也创建在应用程序的的目录下,如下图所示:

3、 注册服务的批处理命令如下所示:

%~dp0\InstallUtil.exe %~dp0\EmailService.exe

Net Start EmailService  --这里是安装完成之后启动服务

sc config EmailService start= auto –这里是将服务设置为自动启动

pause

其中%~dp0表示批处理所在的目录;

4、 注销服务的批处理命令如下所示:

%~dp0\InstallUtil.exe /u %~dp0\EmailService.exe

pause

5、 启动服务的批处理命令如下所示:

net start EmailService

pause

6、 停止服务的批处理命令如下所示:

net stop EmailService

pause

7、 当我们运行注册服务批处理命令之后便会进行服务安装,如果安装成功,我们在服务界面将看到该服务,如下图所示:

8、 安装服务时的注意事项

(1) 安装程序InstallUtil.exe的版本必须于创建Windows服务的.NET版本一致;

(2) 如果是Win7以上版本的系统,在运行批处理命令时,应以管理员身份运行;

(3) 如果是Win7以上版本的系统,应特别注意安装程序和应用程序的路径,以便能够正确的写批处理命令。

原文转载:http://blog.csdn.net/huangcailian/article/details/42237013

vs下开发windows服务程序的更多相关文章

  1. 关于开发Windows服务程序容易搞混的地方!

    在开发Windows服务程序时,我们一般需要添加安装程序,即:serviceInstaller,里面有几个关于名称属性,你都搞明白了吗? 1.Description:表示服务说明(描述服务是干什么的) ...

  2. 开发WINDOWS服务程序

    开发WINDOWS服务程序 开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明 ...

  3. Delphi开发Windows服务程序

    开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause ...

  4. Linux下开发Windows平台运行的程序 - MinGW

    开源不乏神人,于是有了MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils一直到Win32平台下,包含一系列头文件.库和可 ...

  5. 使用Visual Studio 2015 Community 开发windows服务

    昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享……  1.基础   Windows服务是指系统启动时能够自己运行的程序.W ...

  6. .net开发windows服务

    最近一个月都异常的繁忙,项目进度非常的紧,回头看看自己的blog,整整一个5月都没有一篇文章,非常惭愧,现在补几篇文章,介绍一下我最近关注的技术.这篇文章将介绍Windows服务程序的开发.摘要:本文 ...

  7. C#开发Windows服务详细流程

    1.Windows服务简单介绍 Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务.一般情况下,用户不能通过用户界面来安装和启 ...

  8. netcore开发windows普通服务(非Web)并一键发布到服务器

    如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...

  9. C#常规开发Windows服务

    .Net平台下开发Windows服务的支持库很多,除了通过标准的Windows服务项目,还有一些优秀的开源架构比如:TopSelf:本文以常规项目为例 一.开发 1.新建[Windows服务] 项目: ...

随机推荐

  1. asp.net mvc开发过程中的一些小细节

    现在做网站用mvc越来越普及了,其好处就不说了,在这里只记录一些很多人都容易忽视的地方. 引用本地css和js文件的写法 这应该是最不受重视的地方,有同事也说我有点小题大作,但我觉得用mvc还是得有一 ...

  2. (转)你真的会写单例模式吗——Java实现

    http://www.runoob.com/design-pattern/singleton-pattern.html 单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好.用对单例模式, ...

  3. 动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)

    在前端开发并打算推广一个APP的时候,推广页是免不了的,而推广页的展示方式一般是给人家一个二维码,让别人自己去安装APP,这样前段任务也达到了,这次写这篇文章的原因主要还是总结一下,其中有很多不完善的 ...

  4. 通过反编译深入理解Java String及intern

    一.字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究.倒是面试或者笔试的时候,往往会涉及比较深入和难度大一点的问题.我在招聘的时候也偶尔会 ...

  5. 泛型理解及应用(二):使用泛型编写通用型Dao层

    相信目前所有的IT公司网站在设计WEB项目的时候都含有持久层,同样地使用过Hibernate的程序员都应该看过或者了解过Hibernate根据数据库反向生成持久层代码的模板.对于Hibernate生成 ...

  6. freemarker中使用<@spring.*>标签实现国际化

    freemarker实现国际化使用自定义指令<@spring>实现,通过@符号可以看出是自定义的指令,在哪里定义的呢? 路径如下:org/springframework/spring-we ...

  7. [BZOJ 4671]异或图

    Description 题库链接 给定 \(s\) 个结点数相同且为 \(n\) 的图 \(G_1\sim G_s\) ,设 \(S = \{G_1, G_2,\cdots , G_s\}\) ,问 ...

  8. 一张 JVM 相关的思维脑图(4.4M)

    楼主学习 JVM 总结的知识点,用思维脑图串起来,温故而知新,其中含有类加载器,内存布局,GC(右侧). 最多的就是 GC 的内容了. 内容有错误之处,还请指正. 大图地址

  9. 深入浅出 JVM GC(3)

    # 前言 在 深入浅出 JVM GC(2) 中,我们介绍了一些 GC 算法,GC 名词,同时也留下了一个问题,就是每个 GC 收集器的具体作用.有哪些 GC 收集器呢? Serial 串行收集器(只适 ...

  10. js判断字符串是否在数组中

    先加一个扩展函数: Array.prototype.contains = function (obj) {  var index = this.length;  while (index–) {   ...