Windows服务程序图文教程
来源:互联网 发布:python正态分布随机数 编辑:程序博客网 时间:2024/04/29 00:38
Windows服务程序图文教程
1、新建服务项目
在Visual C# 下的选择WindowsService,输入项目名称,点击【OK】
将类名修改为WriteLog.cs
2、编写服务代码
右键点击WriteLog.cs,选择View Code(查看代码)
服务代码中需要重写两个方法:OnStart、OnStop,其中OnStart方法供服务启动时调用,OnStop方法供服务停止时调用。
代码如下:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Linq;using System.ServiceProcess;using System.Text;namespace MyService{ public partial class WriteLog : ServiceBase { public WriteLog() { InitializeComponent(); } protected override void OnStart(string[] args) { System.IO.StreamWriter sw = new System.IO.StreamWriter("D:\\log.txt", true); sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Service WriteLog Start!"); sw.Flush(); sw.Close(); } protected override void OnStop() { System.IO.StreamWriter sw = new System.IO.StreamWriter("D:\\log.txt", true); sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Service WriteLog Stop!"); sw.Flush(); sw.Close(); } }}
程序的目的是在服务启动时向D盘下的log.txt文件(若没有这个文件则创建)中写入一条启动日志,服务停止时追加写入一条停止日志
3、为服务添加安装程序
双击“WriteLog.cs”,VS中间将出现服务的设计区域
右键选择“AddInstaller”
出现serviceProcessInstaller1和serviceInstaller1(如果项目中有两个服务的话,就会出现两个serviceInstaller)
下图是解决方案浏览器的结构:
然后在serviceProcessInstaller1的属性页中指定服务的权限
这里选择LocalSystem,本地系统,这是服务的最高权限
在serviceInstaller1的属性页中填入服务的DisplayName(显示名称,即显示在Windows服务管理器中的名称),Description(服务的描述),ServiceName(服务的内部名称),同时指定服务的启动方式,分为Automatic(自动)、Manual(手动)、Disabled(禁用)。
这里选择Automatic,即开机启动
4、编译
右键点击MyService项目,选择Build即可编译
编译完成后,在项目的Debug文件夹里,即可看到服务的exe可执行程序
习惯性双击MyService.exe,会出现一个“Windows Service Start Failure”的提示
原来服务程序必须先用installutil.exe进行安装,然后在服务管理器中启动才能使用。
5、安装服务程序
进入CMD控制台,在.NET路径下找到installutil.exe
将服务程序的路径作为installutil.exe的输入参数传入(可以直接将文件拖进命令行即可出现绝对路径)并回车
服务安装成功。
右键点击“我的电脑”——>“管理”,在出现的“计算机管理”对话框中选择“服务和应用程序”——>“服务”
窗口右边即可以找到我们刚才已经安装的服务
可以看到现在服务的状态为空白,说明服务还未启动。右键点击安装的服务,选择“启动”,即可启动服务
启动后我们在D盘下找到了一个log.txt文件
手动停止服务,则在log.txt文件中有新增了一行日志。
明白了这个过程,就可以写一个批处理文件,双击即可执行安装服务程序而不需要手动在命令行中输入。
在MyService.exe所在路径下新建一个install.txt
内容如下:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installUtil.exe MyService.exe
NetStart WriteLog
将后缀名改为.bat
双击即可执行服务的安装并启动服务
6、卸载服务
与安装服务类似,只是在InstallUtil.exe 后面,服务程序所在路径的前面加上参数 /u,回车即可。在服务管理中刷新下即可发现WriteLog服务不在了。
同样也可以编写一个批处理文件卸载服务
在MyService.exe所在路径下新建一个uninstall.txt
内容如下:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installUtil.exe/u MyService.exe
将后缀名改为.bat
双击即可执行服务的卸载
上面我们用命令行的形式来安装服务程序,这个过程显得较为繁琐,不利于使用者的操作。其实windows服务项目还可以做成安装程序的形式来安装,这样就比较方便了。下一篇我们就来介绍为windows服务项目添加安装程序。
- Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- C#编写Windows服务程序图文教程
- Windows安装memcached图文教程
- Windows安装memcached图文教程
- Windows安装memcached图文教程
- Windows安装memcached图文教程
- 黑马程序员java高新技术篇----类加载与注解
- 使用Eclipse调试Java程序的10个技巧
- Oracle/PLSQL: Execute an SQL script file in SQLPlus
- Ubuntu environment 修改后,解决办法
- 浅谈游戏的微博营销
- Windows服务程序图文教程
- 文摘--用rp-pppoe做了个pppoe-server
- group by 在sqlserver与oracle中的差别
- C++代码评审(Code Review)等级标准
- 微信绝对不收费
- extern "C"的用意
- hdu1599 无向图最小环
- Ural 1018 树dp
- (2)MySQL 三范式