vs下开发windows服务程序
一、 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服务程序的更多相关文章
- 关于开发Windows服务程序容易搞混的地方!
在开发Windows服务程序时,我们一般需要添加安装程序,即:serviceInstaller,里面有几个关于名称属性,你都搞明白了吗? 1.Description:表示服务说明(描述服务是干什么的) ...
- 开发WINDOWS服务程序
开发WINDOWS服务程序 开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明 ...
- Delphi开发Windows服务程序
开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause ...
- Linux下开发Windows平台运行的程序 - MinGW
开源不乏神人,于是有了MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils一直到Win32平台下,包含一系列头文件.库和可 ...
- 使用Visual Studio 2015 Community 开发windows服务
昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享…… 1.基础 Windows服务是指系统启动时能够自己运行的程序.W ...
- .net开发windows服务
最近一个月都异常的繁忙,项目进度非常的紧,回头看看自己的blog,整整一个5月都没有一篇文章,非常惭愧,现在补几篇文章,介绍一下我最近关注的技术.这篇文章将介绍Windows服务程序的开发.摘要:本文 ...
- C#开发Windows服务详细流程
1.Windows服务简单介绍 Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务.一般情况下,用户不能通过用户界面来安装和启 ...
- netcore开发windows普通服务(非Web)并一键发布到服务器
如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...
- C#常规开发Windows服务
.Net平台下开发Windows服务的支持库很多,除了通过标准的Windows服务项目,还有一些优秀的开源架构比如:TopSelf:本文以常规项目为例 一.开发 1.新建[Windows服务] 项目: ...
随机推荐
- LeetCode手记-Add Binary
问题描述 问题分析 分析题意,此题实际是求解两个二进制数的和,但是有两点要注意: 1.字符串的长度不限,所以相应十进制数值很可能会超过int的上限. 2.二进制的加法规则是自右向左进位,需要注意,以题 ...
- sql server 备份与恢复系列六 文件组备份与还原
一. 概述 文件备份是指备份一个或多个文件或文件组中的所有数据.使用文件备份能够只还原损坏的文件,而不用还原数据库的其余部份,从而加快恢复速度.例如,如果数据库由位于不同磁盘上的若干文件组成,在其中一 ...
- Android invalidate()方法 requestLayout()方法分析
强调一点的就是,在onMeasure(),onLayout(),onDraw()这三个流程中,Google已经帮我们把draw()过程框架已经写好了,自定义的ViewGroup只需要实现 measur ...
- Android应用系列:值得收藏的ViewHolder工具类实现
前言 在开发APP的过程中,攻城狮少不了要跟ListView.GridView这些组件眉来眼去,暗送几波秋波.自然原生态美人BaseAdapter更是程序员的最爱,有了它,我们想怎么干就能怎么干,嘿嘿 ...
- maven多环境参数配置
maven中properties加载顺序 <build><filters></filters></build>中的配置 pom.xml中的<pro ...
- 异步与并行~CancellationTokenSource对线程的作用
返回目录 说起CancellationTokenSource我们应该不会陌生,对于Thread,Task来说,我们启动一个线程去做一些事,如果希望它在某个阶段去被动的停止,可以使用这个Cancella ...
- 获取多个checkbox的选中值
我在这个div中添加了多个input. 拼接一下呢.最老的方法. jquery获取值: var strSel=""; $("[name='jbbm']:checked&q ...
- FFmpeg数据结构AVFrame
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10404502.html 本文基于FFmpeg 4.1版本. 1. 数据结构定义 stru ...
- c++中虚函数和多态性
1.直接看下列代码: #include <iostream> using namespace std; class base{ public: void who(){ cout<&l ...
- 一文看懂https如何保证数据传输的安全性的【转载、收藏】
一文看懂https如何保证数据传输的安全性的 一文看懂https如何保证数据传输的安全性的 大家都知道,在客户端与服务器数据传输的过程中,http协议的传输是不安全的,也就是一般情况下http是明 ...