C# windows服务:创建Windows服务(Windows Services)的一般步骤
C#创建Windows服务(Windows Services)
Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称。用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Windows服务并使用它。这个服务在启动和停止时,向一个文本文件中写入一些文字信息。
C#创建Windows服务第一步:创建服务框架
要创建一个新的 Windows 服务,可以从Visual C# 工程中选取 Windows 服务(Windows Service)选项,给工程一个新文件名,然后点击 确定。
你可以看到,向导向工程文件中增加WebService1.cs类:
其中各属性的含意是:
◆Autolog
是否自动写入系统的日志文件
◆CanHandlePowerEvent
服务时候接受电源事件
◆CanPauseAndContinue
服务是否接受暂停或继续运行的请求
◆CanShutdown
服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程
◆CanStop
服务是否接受停止运行的请求
◆ServiceName
服务名
C#创建Windows服务第二步:向服务中增加功能
在 .cs代码文件中我们可以看到,有两个被忽略的函数 OnStart和OnStop。
OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:
protected override void OnStart(string[] args)
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt",FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(, SeekOrigin.End);
m_streamWriter.WriteLine("mcWindowsService: Service Started" + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
} protected override void OnStop()
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(, SeekOrigin.End);
m_streamWriter.WriteLine(" mcWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close(); }
C#创建Windows服务第三步: 将安装程序添加到服务应用程序
Visual Studio.NET 随附有安装组件,可用来安装与服务应用程序相关联的资源。安装组件在正在安装到的系统上注册一项单个的服务,并使服务控制管理器知道该服务的存在。
要正确安装服务,并不需要在安装程序中进行任何特殊编码。但是,如果需要向安装进程添加特殊功能,则可能偶尔需要修改安装程序的内容。
将安装程序添加到服务应用程序的步骤是:
1:在解决方案中,访问要向其中添加安装组件的服务的Design视图。
2:在属性窗口中,单击添加安装程序链接
这时项目中就添加了一个新类 ProjectInstaller 和两个安装组件 ServiceProcessInstaller 和 ServiceInstaller,并且服务的属性值被复制到组件。
3:若要确定如何启动服务,请单击 ServiceInstaller 组件并将 StartType 属性设置为适当的值。
◆Manual
服务安装后,必须手动启动。
◆Automatic
每次计算机重新启动时,服务都会自动启动。
◆Disabled
服务无法启动。
4:将serviceProcessInstaller类的Account属性改为 LocalSystem
这样,不论是以哪个用户登录的系统,服务总会启动。
C#创建Windows服务第四步:生成服务程序
通过从生成菜单中选择生成来生成项目。
注意 不要通过按 F5 键来运行项目——不能以这种方式运行服务项目。
C#创建Windows服务第五步:安装服务
访问项目中的已编译可执行文件所在的目录。
用项目的输出作为参数,从命令行运行 InstallUtil.exe。在命令行中输入下列代码:
- installutil yourproject.exe
卸载服务
用项目的输出作为参数,从命令行运行 InstallUtil.exe。
- installutil /u yourproject.exe
C# windows服务:创建Windows服务(Windows Services)的一般步骤的更多相关文章
- windows下创建/删除服务
windows下创建/删除服务 1. windows下创建/删除服务 1.1. 创建服务 命令格式: sc [servername] create Servicename [Optio ...
- windows bat发布成服务
删除服务 删除名为"WINDOWS MANAGEMONT INSTALLER"的系统服务 sc delete "windows managemont Installer& ...
- .NET 创建Windows服务,及服务的安装卸载
.NET服务创建过程 http://jingyan.baidu.com/article/fa4125acb71a8628ac709226.html 相关命令(要以管理员身份打开cmd) 安装服务 -& ...
- Windows手工创建服务方法
需要将程序设置成Windows服务的情况,可以利用一下windows自带的sc命令来创建服务. 该命令的基本用法如下:打开cmd命令, 输入如下信息:1 创建服务:sc create SecServe ...
- Windows服务创建及发布
二.创建Windows Service 1.新建一个Windows Service,并将项目名称改为“MyWindowsService”,如下图所示: 2.在解决方案资源管理器内将Service1.c ...
- .net windows 服务创建、安装、卸载和调试
原文:http://blog.csdn.net/angle860123/article/details/17375895 windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境 ...
- Windows服务创建及安装
Windows服务创建及安装http://www.cnblogs.com/tuyile006/archive/2006/11/27/573654.html
- 使用普通Windows服务创建Quartz.Net服务项目
Quartz.NET 项目地址 http://quartznet.sourceforge.net/ 源码下载地址:Quartz.Net.2.0 首先创建Quartz.Net.2.0解决方案,添加 Wi ...
- 基于C#&.net2.0的windows服务创建与安装
起因:一台服务器中部署的程序,停电后未按照计划任务正常启动. 一.创建并配置Windows服务程序 开发工具VS2015 Framework版本2.0 1.新建Windows服务 2.在Service ...
- Redis-环境搭建、创建服务、搭建主从复制-Windows版本
一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...
随机推荐
- 通过 SSH 转发TCP连接数据
设定 首先双方的/etc/ssh/sshd_config设定以下四项: AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts yes ...
- PHP微信公众号开发之基本配置
(提示:需要有服务器或云虚拟机) 一开始不明白公众号不是可以这样管理吗? 那么为什么用开发平台进行公众号开发,官方文档是这样说的 为了识别用户,每个用户针对每个公众号会产 ...
- Java - 24 Java 封装
Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外 ...
- centos7 安装 nvm
cd 到 /usr/local下创建nvm文件夹,并进入nvm目录, 执行命令: wget -qO- https://raw.githubusercontent.com/creationix/nvm/ ...
- django 之admin使用
Admin注册 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据,开发这些重复的功能是一件单调乏味.缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块. 1)准备工作 ...
- android 开发 实现一个activity变成dialog对话框
效果图: 首先说说为什么需要大费周章的去用activity实现一个dialog,明明android系统已经提供了一个更方便的dialog了.原因如下: 1.activity模式的dialog可以实现更 ...
- 打包django项目
1.安装pip install pyinstaller2.在django项目目录下执行pyi-makespec -D manage.py # 生成manage.spec文件3.执行pyinstalle ...
- Java课程作业之动手动脑(三)
1.以下代码为何无法通过编译?哪儿出错了? 在Foo类中已经有了一个Foo的含参构造方法,所以在定义Foo类对象时不能使用new Foo()方法.在Foo类中再写一个无参构造方法,就能编译了. 如果类 ...
- 配置Eclipse的Maven环境
- yii主题
修改应用的配置文件(protected/config/main.php)中加入 return array( ’theme’=>’basic’, ); 所有的视图文件必须位于views下 ,布局视 ...