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

C#编写Windows服务

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

      Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

     使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。

     新建一个Windows Services工程:

 

工程创建好之后,默认会有一个Services1.cs文件,删掉此文件,重新添加一个新Item

右击新添加的这个文件,选择View code,可以看到,有两个函数 OnStart和OnStop,OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。

这两个函数的代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Diagnostics;
 6 using System.Linq;
 7 using System.ServiceProcess;
 8 using System.Text;
 9 using System.Threading.Tasks;
10 using System.IO;
11 
12 namespace MyFirstWindowsService
13 {
14     partial class MyWindowsService : ServiceBase
15     {
16         public MyWindowsService()
17         {
18             InitializeComponent();
19         }
20 
21         protected override void OnStart(string[] args)
22         {
23             // TODO: Add code here to start your service.
24             FileStream fileStream = new FileStream(@"D:\MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
25 
26             StreamWriter streamWriter = new StreamWriter(fileStream);
27 
28             streamWriter.BaseStream.Seek(0, SeekOrigin.End);
29 
30             streamWriter.WriteLine("My service started" + DateTime.Now.ToString() + "\n");
31 
32             streamWriter.Flush();
33 
34             streamWriter.Close();
35 
36             fileStream.Close();
37         }
38 
39         protected override void OnStop()
40         {
41             // TODO: Add code here to perform any tear-down necessary to stop your service.
42             FileStream fileStream = new FileStream(@"D:\MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
43 
44             StreamWriter streamWriter = new StreamWriter(fileStream);
45 
46             streamWriter.BaseStream.Seek(0, SeekOrigin.End);
47 
48             streamWriter.WriteLine("My service stopped " + DateTime.Now.ToString() + "\n");
49 
50             streamWriter.Flush();
51 
52             streamWriter.Close();
53 
54             fileStream.Close();
55         }
56     }
57 }

之后需要新建一个安装组件MyWindowsServiceProjectInstaller(右击MyWindowsService.cs这个文件选择view desiner,然后选择Add Installer),需要将MyFirstWindowsServiceProcessInstaller的account属性设置为localservice.

 

编写批处理文件:

 安装服务批处理:

1 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe C:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe
2 Net Start ServiceTest
3 sc config ServiceTest start= auto

卸载服务批处理:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u C:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe

 

服务安装好之后:

 

服务启动之后可以在D盘看到一个txt的文件,里面记录了服务的启动时间.

 

 


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C#中RadioButton选中和取消选中(一种没办法选中和未选中切换) ...发布时间:2022-07-18
下一篇:
C#可选参数命名参数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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