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

开发

  0.创建服务 1.安装 2.启动 3.停止 4.卸载 5.监控服务

创建服务:

1.  在c#中创建1个服务很简单,只要继承ServiceBase,重写OnStart和OnStop方法就可以.(最快的是右键新建项)

    OnStart方法是服务启动的时候执行的

    OnStop方法是服务停止的时候执行的

  

2.  通常会用System.Timers.Timer做定时任务处理.

安装:

方式一(手动):

InstallUtil:

1. 打开Visual Studio .NET命令提示
2. 改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
3. 执行命令“InstallUtil.exe MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。

方式二(代码):

a.ManagedInstallerClass类:

var filePath = Process.GetCurrentProcess().MainModule.FileName(取当前进程文件路径)

var cmds = new []{filePath};

ManagedInstallerClass.InstallHelper(cmds);

b.(sc命令是用来与服务控制管理器和服务进行通信的命令行程序)

var cmd = "create myserver binpath= \""+程序绝对路径名+"\" displayName= 服务名 start= auto"

Process.Start("sc", cmd);

启动:

方式一(代码):

a.Process.Start("sc", "start 服务名");

方式二(手动):

a.命令提示符中:net start 服务名

b.运行"services.msc",找到服务名,启动服务

停止:

方式一(代码):

a.Process.Start("sc", "stop 服务名");

方式二(手动):

a.命令提示符中:net stop 服务名

b.运行"services.msc",找到服务名,停止服务

卸载:

方式一(手动):

1. 打开Visual Studio .NET命令提示
2. 改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
3. 执行命令“InstallUtil.exe /u MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。

 

方式二(代码):

Process.Start("sc", "delete 服务名");

监控:

使用ServiceController来获取服务状态或对服务进行控制。

这个类可以获取服务的状态,属性,对服务也可以进行启动,停止操作

代码下载

[Solution] Microsoft Windows 服务(1) C#创建Windows服务的更多相关文章

  1. windows服务搭建(VS2019创建Windows服务不显示安装组件)

    1.创建windows服务应用 2.右键查看代码 3.写个计时器Timer  using System.Timers; 如上图,按tab键快速操作  会自动创建一个委托 改为下边的方式,打印日志来记录 ...

  2. windows下使用IIS创建git服务

    Bonobo Git Server 下载地址: https://bonobogitserver.com/ 安装方法:https://bonobogitserver.com/install/ 配置简单, ...

  3. C#创建Windows Service(Windows 服务)基础教程

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  4. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  5. C# 创建Windows Service(Windows服务)程序

    本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2 ...

  6. c#创建windows服务(创建,安装,删除)

    一.在vs中创建一个window服务 二.进入Service1.cs页面后 右击----创建安装程序,安装程序创建成功后---会出现ProjectInstaller.cs文件 三.进入ProjectI ...

  7. C# windows服务:创建Windows服务(Windows Services)的一般步骤

    C#创建Windows服务(Windows Services) Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Wind ...

  8. C#创建windows服务列表

    转载自:http://www.cnblogs.com/sorex/archive/2012/05/16/2502001.html Windows Service这一块并不复杂,但是注意事项太多了,网上 ...

  9. 创建Windows Service

    基本参照使用C#创建Windows服务,添加了部分内容 目录 创建Windows Service 可视化管理Windows Service 调试 示例代码 创建Windows Service 选择C# ...

随机推荐

  1. [2013 eoe移动开发者大会]靳岩:从码农到极客的升级之路

    (国内知名Android开发论坛 eoe开发者社区推荐:http://www.eoeandroid.com/) 前天,2013 eoe 移动开发者大会在国家会议中心召开,eoe 开发者社区创始人靳岩在 ...

  2. 含有Date和Timestamp的Java和Json互相转化

    工程 代码 package com.my.json.helper; import java.text.DateFormat; import java.text.SimpleDateFormat; im ...

  3. android国际化(多语言)

    2013-03-18 23:45             13390人阅读             评论(0)             收藏              举报 1.  很大程度上,为什么 ...

  4. 在matlab中配置vlfeat

    [转自]http://cnyubin.com/?p=85 在VLFeat官网上是这么介绍VLFeat的:VLFeat开源库实现了很多著名的机器视觉算法,如HOG, SIFT, MSER, k-mean ...

  5. TP收集一些可以用的资源

    http://www.thinkphp.cn/code/2184.html    UI http://www.thinkphp.cn/code/2158.html   报名 http://www.th ...

  6. 延长Toast显示时间

    ---恢复内容开始--- 由于Toast的显示时间只有两种: Toast.LENGTH_SHORT: 2秒 Toast.LENGTH_LONG: 3.5秒 而且是写死的,没给开发者自定义时间的权利,所 ...

  7. Oracle 一次生产分库,升级,迁移

    今天完成了一个负载较高的中央数据库的分库操作, 并实现了oracle的滚动升级(10.2.0.1->10.2.0.4), 业务中断仅15分钟. 平台: RHEL AS 4 + Oracle 10 ...

  8. 算法 - 求两个自然数的最小公倍数(C++)

    //************************************************************************************************** ...

  9. C# Json帮助类

    using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Re ...

  10. WebDriver基本API使用(基于Java)V1.0

    WebDriver基本API使用(基于Java)V1.0http://www.docin.com/p-803032877.html