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

时间: 2024-10-13 05:02:06

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

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

在开发Windows服务程序时,我们一般需要添加安装程序,即:serviceInstaller,里面有几个关于名称属性,你都搞明白了吗? 1.Description:表示服务说明(描述服务是干什么的): 2.DisplayName:表示友好名称,可以理解为服务名的别名: 3.ServiceName:表示服务名,此为真正的服务名,与DisplayName是有区别的哦,是系统识别的依据: 这三个属性在WIN7及更高版本操作系统中,同属性但表示却不同: 本地服务列表中:(即:services.msc)

Delphi开发Windows服务程序教程<一>

开发步骤:1.New->Other->Service Application2.现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明一下:AllowPause:是否允许暂停AllowStop: 是否允许停止Dependencies: 设置服务的依存关系,服务的启动是否依赖于某个服务或者组DisplayName: 在“服务”窗口显示的名称Interactive: 设置为true时可以和Windows桌面进行交互,如果我们想在服务里显示窗体的话此设置就要设置为true,另外

Delphi开发Windows服务程序

开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause:是否允许暂停 AllowStop: 是否允许停止 Dependencies: 设置服务的依存关系,服务的启动是否依赖于某个服务或者组 DisplayName: 在"服务"窗口显示的名称 Interactive: 设置为true时可以和Windows桌面进行交互,如果我们想在服务里显示窗体

c# 编写Windows服务程序

1.Windows服务程序 在没有涉及到这个问题的时候我也不太明白他里面的深刻奥义.后来知道了这是一个能够长时间运行的应用程序,这个服务只要配置自动启动那么在windows开机启动的时候自动运行起,他没有界面.在Windows机器上能够通过管理工具/服务进行系统运行的所有服务的查看和管理.系统的大部分软件和硬件的运行状态监控都是通过Windows服务进行监控的,通过服务不断轮训去请求BIOS提供的端口收集BIOS收集的硬件的运行状态.可能他们又通过不同的媒介进行展示如windows计数器进行性能

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

如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run改为host.RunAsService就可以了. 但是普通的netcore的控制台项目我终于找到了如下方式来实现: 1. 打开vs 选择创建一个新的netcore 控制台项目 Nuget添加如下引用 Microsoft.Extensions.Hosting System.ServiceProcess

gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)

cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets.所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题.是在windows下开发

Python在Windows下开发环境配置汇总

最近比较关注学习Python方面的资料和课程,由于Python本身基本都是在Linux下开发,本人windows用习惯了初用Linux各种别扭啊. 下面将我在配置Windows环境下的禁言写出来,与大家分享. 1.下载与安装Python 1.Python官方网址:https://www.python.org 2.点击DownLoad后选择适合自己的版本进行下载. 3.下载完成后,直接安装包安装一路Next. 4.然后配置环境变量,为计算机添加安装目录搭到环境变量,如图把python的安装目录添加

windows下开发服务器 位对齐问题

windows下开发服务器 位对齐问题 问题描述: 我在开发手机客服端大厅时,发送一个字节长度为奇数(2N-1)的数据,服务器是老是拒绝数据,长度不对,而远行PC端大厅,断点调试发现同样的数据却是偶数(2N)? 解决办法: windows默认是 #pragma pack(8) 我们开发可能看到是#pragma pack(1),把服务器改成#pragma pack(1) 版权声明:本文为博主原创文章,未经博主允许不得转载.

win7下用c#开发windows服务

1.首选我们需要打开VS2008,然后点击文件-->新建-->项目,选择Visual C#-->windows-->windows服务.如下图所示: 2.然后修改Service1.cs类. 我们需要重写OnStart和OnStop方法.代码如下所示: [csharp] view plaincopy using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat