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

一、使用C#创建Windows service步骤:

1、文件->新建->项目:选择Windows服务,修改项目名称和位置,然后点击"确定":

2、在默认生成的服务Service1设计界面上右键,选择“属性”,打开属性面板

3、在打开的属性面板中,修改常用属性:

Name:后台代码类的名称。
    AutoLog:设为true,自动将事件写入到Windows的事件日志中,可以在事件查看器中查看日志
    CanPansuAndContinue:设为True,表示服务可以暂停和继续

4、添加服务安装程序:在Service1的设计界面点右键,选择“添加安装程序”

5、在生成的“ProjectInstaller设计界面”修改属性

5.1 选中serviceProcessInstaller1点右键,选择“属性”,打开serviceProcessInstaller1的属性面板:
          Account:指示用来运行此服务的账户类型,默认选择User,修改为高权限的LocalSystem

5.2 选中serviceInstaller1点右键,选择“属性”,打开serviceInstaller1的属性面板
       ServiceName:在Windows服务里面显示的名称
       Description:在Windows服务里面显示的描述信息
       StartType:指示启动此服务的方式和时间 Manual:手动启动  Automatic:自动启动
       DelayedAutoStart:指示服务是否延时启动,默认false,改为True,则表示服务延时启动

6、重新生成解决方案,Windows服务创建完成。

二、安装和卸载Windows服务

方式一、使用DOS命令行安装:必须以管理员身份运行DOS命令行,否则安装过程中会因为权限的问题导致安装失败。

在命令行下面执行“installutil+生成的可执行文件的路径”的命令进行安装

输入命令以后,按回车,进行安装:

出现此界面表示服务安装成功。在系统服务里面查看新安装的服务:

卸载Windows服务:

在命令行里面输入“installutil /u 可执行文件路径”命令,然后回车

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe

在系统服务里面刷新,找不到刚才的MyFirstService服务了。

方式二:使用批处理文件(.bat)安装服务

1、新建txt文本文件。

2、编辑新建的文本文件:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe

pause

3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Install.bat。

使用批处理文件(.bat)卸载服务

1、新建txt文本文件。

2、编辑新建的文本文件:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe
pause

3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Uninstall.bat。

注意:执行批处理文件都是以管理员身份运行

方式三:使用vs自带的外部工具安装

1、以管理员身份运行visual studio,打开解决方案,选择菜单栏的“工具”->"外部工具",打开外部工具界面:

2、点击添加,添加安装程序

标题:InstallService

命令:C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe

参数:点击“箭头按钮”,选择目标文件名,注意:选择目标文件名以后要加上文件的扩展文件名

初始目录:点击“箭头按钮”,选择目标文件目录

3、最后的InstallService命令应该是下面这样:

4、点击应用、确定按钮,保存配置。

5、点击菜单栏的工具选项,可以看见新添加的"InstallService"命令

6、点击“InstallService”命令,开始安装,输出界面会显示安装信息:

7、至此,服务安装成功,在系统服务界面可以查看到新安装的服务。

Windows服务一:新建Windows服务、安装、卸载服务的更多相关文章

  1. 2.Windows服务-->安装卸载服务

    1.使用vs组件“VS2012开发人员命令提示” 工具,进行安装卸载服务(必须以“管理员身份运行") 安装和卸载的时候选择合适的安装程序工具地址,例如: 安装服务:C:\Windows\Mi ...

  2. Mysql-win免安装卸载服务后重新安装不能启动的问题

    一.先看配置文件有没有问题,以下是一个简单的配置 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 port ...

  3. WINDOWS 2008Server 配置nginx 反向代理服务器 安装成服务

    本案例有用过可行 反向代理就是是网站通过一台机器发布到公网,客户访问的时候是直接访问那台代理机器的,然后通过那台机器才访问到内网网站.   0.先要在域名官网上面配置域名对应的IP地址,然后要在自己路 ...

  4. paramiko监控 windows服务器 被监控服务器只需要安装openssh服务即可基于wmic完成大部分监控

    #!/usr/bin/python #-*- coding: UTF-8 -*- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  5. c#创建windows服务(代码方式安装、启动、停止、卸载服务)

    转载于:https://www.cnblogs.com/mq0036/p/7875864.html 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NE ...

  6. C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)

    步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft ...

  7. C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe

    不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以 ...

  8. 新建WINDOWS服务C#

    当前作业环境 Windows8.1 | Visual Studio 2013 一. 建立项目,选择"Windows服务"模板 二. 查看生成的项目,结构很像WinForm的项目,其 ...

  9. 使用C#创建Windows服务 并发布Windows 服务

    一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Servic ...

  10. C#操作注册服务卸载服务启动服务停止服务.. .

    using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; usi ...

随机推荐

  1. volley_缓存介绍

    离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据.如Json 数据缓存到本地,在断网的状态下启动APP时读取本地缓存数据显示在界面上,常用的APP( ...

  2. CORS 协议(跨域资源共享)

      跨域问题 只要协议.域名.端口有任何一个不同,都被当作是不同的域.   为什么会有跨域的限制? 之前发生过的一些跨域安全事件: 新浪微博XSS受攻击事件 2011年6月28日晚,新浪微博出现了一次 ...

  3. PHP面向对象编程——深入理解方法重载与方法覆盖(多态)

    什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...

  4. Mware vCenter Server 识别固态硬盘为(非SSD)是什么原因?

    人工定义一下: 用root登录进ESXi控制台:esxcli storage nmp device list #列出储存清单esxcli storage nmp satp rule add -s VM ...

  5. [PAT]素因子分解(20)

    #include "stdio.h" #include "math.h" long Prime(long); long PrimeCount(long,long ...

  6. Maven基础笔记,原理

    1.什么是Maven ①Maven是一款实现自动化构建的工具软件. ②构建:从源程序→程序的执行 清理→编译→测试→报告→打包→部署→执行 ③构建工具:Make→Ant→Maven→Gradle... ...

  7. Node ExpressJs server的路径设置

    一.动态页面的路径: app.METHOD(PATH, HANDLER)Where: * app is an instance of express.* METHOD is an HTTP reque ...

  8. Linux手动释放内存

    手动释放内存 1.sync将内存中的缓存写入磁盘 2.  to free pagecache, use echo 1 > /proc/sys/vm/drop_caches;       to f ...

  9. JavaScript笔记:对象及数组

    一.对象 在javascript中,对象是拥有属性和方法的一种基本数据类型 1.创建object 创建object实例有如下两种方式: 使用new操作符后跟object构造函数创建,如下代码: var ...

  10. js面向对象的实现(example 二)

    //这个方法和上篇文章(js面向对象的实现(example 一))中的方法类似,但是更为简洁 //通过函数赋值的方式来构造对象 //同样通过闭包的方式来封装对象及内部变量 (function () { ...