• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#利用Windows服务模板创建、安装与卸载Windows服务

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

什么是Windows服务?
Windows服务,是在Windows操作系统下能够长时间运行的可执行应用程序。
它们在计算机启动后用户登录前就执行,启动方式分自动和手动,可以重启或者暂停,且没有任何用户界面。
Windows服务典型的应用是缓存、异步支付订单...

C#如何创建Windows服务?

利用Windows服务模板

新建项目

单击右键,选择添加安装程序

添加成功后效果如下

分别配置serviceInstaller1、serviceProcessInstaller1的属性

编写服务主体逻辑代码,比如在文本文件中写入一句话

 1 using System;
 2 using System.IO;
 3 using System.ServiceProcess;
 4 using System.Configuration;
 5 
 6 namespace MyWindowsService
 7 {
 8     public partial class Service1 : ServiceBase
 9     {
10         public Service1()
11         {
12             InitializeComponent();
13         }
14 
15         /// <summary>
16         /// 启动服务时执行
17         /// </summary>
18         /// <param name="args"></param>
19         protected override void OnStart(string[] args)
20         {
21             FileStream fs = new FileStream(ConfigurationManager.AppSettings["LogFile"].ToString(), FileMode.OpenOrCreate, FileAccess.Write);
22             StreamWriter sw = new StreamWriter(fs);
23             sw.BaseStream.Seek(0, SeekOrigin.End);
24             sw.WriteLine(string.Format("Windows Service Start At {0} \n", DateTime.Now.ToString()));
25             sw.Flush();
26             sw.Close();
27             fs.Close();
28         }
29 
30         /// <summary>
31         /// 停止服务时执行
32         /// </summary>
33         protected override void OnStop()
34         {
35             FileStream fs = new FileStream(ConfigurationManager.AppSettings["LogFile"].ToString(), FileMode.OpenOrCreate, FileAccess.Write);
36             StreamWriter sw = new StreamWriter(fs);
37             sw.BaseStream.Seek(0, SeekOrigin.End);
38             sw.WriteLine(string.Format("Windows Service Stop At {0} \n", DateTime.Now.ToString()));
39             sw.Flush();
40             sw.Close();
41             fs.Close();
42         }
43     }
44 }
View Code

安装Windows服务

1、以管理员身份运行命令行工具

2、进入InstallUtil.exe文件夹
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 或 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

3、安装服务,如果路径带空格,用双引号包起来
InstallUtil.exe "F:\maiaimei\WindowsService\Demo\MyWindowsService.exe"

卸载Windows服务

1、以管理员身份运行命令行工具

2、进入InstallUtil.exe文件夹
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 或 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

3、卸载服务,如果路径带空格,用双引号包起来
InstallUtil.exe /u "F:\maiaimei\WindowsService\Demo\MyWindowsService.exe"

这里强调的是以管理员身份运行命令行工具,否则有可能报错

正在安装程序集“F:\maiaimei\WindowsService\Demo\MyWindowsService.exe”。
受影响的参数是:
   logtoconsole = 
   logfile = F:\maiaimei\WindowsService\Demo\MyWindowsService.InstallLog
   assemblypath = F:\maiaimei\WindowsService\Demo\MyWindowsService.exe
正在安装服务 MyWindowsService...
正在日志 Application 中创建 EventLog 源 MyWindowsService...
正在回滚程序集“F:\maiaimei\WindowsService\Demo\MyWindowsService.exe”。
受影响的参数是:
   logtoconsole = 
   logfile = F:\maiaimei\WindowsService\Demo\MyWindowsService.InstallLog
   assemblypath = F:\maiaimei\WindowsService\Demo\MyWindowsService.exe
正在将事件日志还原到源 MyWindowsService 的前一状态。
在 System.Diagnostics.EventLogInstaller 安装程序的“回滚”阶段发生异常。
System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。  不可访问的日志: Security。
在安装的“回滚”阶段发生异常。将忽略该异常并继续回滚。但是,在完成回滚后计算机可能无法完全还原到它的初始状态。

源码地址:https://github.com/maiaimei/WindowsService


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#如何把月份转换成季度发布时间:2022-07-13
下一篇:
初学c++动态联编发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap