一、通过InstallUtil.exe安装、卸载、启动、停止Windows Service  

  方法一

  1.以管理员身份运行cmd

  2.安装windows服务

    切换cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(InstallUtil.exe的路径下,注意InstallUtil.exe的版本号需要和项目的版本号相同)

  3.安装windows服务

    InstallUtil.exe D:\SimpleService\SimpleService\bin\Debug\SimpleService.exe(项目的路径)

(安装过程中出现的错误:Window Service Install "帐户名无效或不存在,或者密码对于指定的帐户名无效。" 解决方法:填用户名时,要在前面加上 .\)

  4.启动windows服务

    net start Servive1(服务名称)

  5.卸载windows服务

    InstallUtil.exe /u D:\SimpleService\SimpleService\bin\Debug\SimpleService.exe

  方法二  

  1、找到 Installutil.exe 文件,并把它复制到 D:\SimpleService\SimpleService\bin\Debug\目录

  2、现在 Installutil.exe 程序在 D:\SimpleService\SimpleService\bin\Debug 目录下,需要通过cmd命令 "cd" 切换到该目录下。

  3、安装服务:
    installutil.exe SimpleService.exe

  4、卸载服务:
    installutil.exe SimpleService.exe

、通过代码模拟InstallUtil.exe安装、卸载、启动、停止Windows Service

  1、Program.cs中的代码

using System.ServiceProcess;

namespace MyWindowsService
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main(string [] args)
{
const string SERVICE_NAME = "MyWindowsService";
if (args.Length>&&(args[].ToLower()=="-install"||args[].ToLower()=="-i"))
{
if (!ServiceIsExisted(SERVICE_NAME))
{
System.Configuration.Install.ManagedInstallerClass.InstallHelper(new string[] { string.Concat(SERVICE_NAME,".exe")});
ServiceController c = new ServiceController(SERVICE_NAME);
c.Start();
}
}
else if(args.Length>&&(args[].ToLower()== "-uninstall" || args[].ToLower()=="-u"))
{
if (ServiceIsExisted(SERVICE_NAME))
{
System.Configuration.Install.ManagedInstallerClass.InstallHelper(new string[] { "/u", string.Concat(SERVICE_NAME, ".exe")});
}
}
else
{
ServiceBase[] ServicesToRun= { new Service1() };
ServiceBase.Run(ServicesToRun);
}
}
/// <summary>
/// 判断是否了安装该服务
/// </summary>
/// <param name="svcName"></param>
/// <returns></returns>
private static bool ServiceIsExisted(string svcName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController s in services)
{
if (string.CompareOrdinal(s.ServiceName,svcName)==)
{
return true;
}
}
return false;
}
}
}

  2、管理员身份打开命令提示符

  3、切换到exe所在的目录,如下图

  4、安装服务

    MyWindowsService  -i

  其中MyWindowsService是服务名称,-i是安装服务的命令符号,可以看一下program.cs的代码就明白了。

  5、卸载服务

    MyWindowsService  -i

  其中MyWindowsService是服务名称,-u是卸载服务的命令符号,可以看一下program.cs的代码就明白了。

三、通过SC命令安装、卸载、启动、停止Windows Service

  1、安装Windows service

    sc create service1 binPath= "D:\SimpleService\SimpleService\bin\Debug\ SimpleService.exe"

    其中:service1 为创建的服务名,binPath后面是运行exe文件的所在路径

  2、配置服务    

    sc config service1 start= AUTO    (自动)

    sc config service1 start= DEMAND  (手动)

    sc config service1 start= DISABLED(禁用)

    其中service1是创建的服务名

  3、开启服务

    net start service1

    其中service1是创建的服务名

  4、关闭服务    

    net stop service1

    其中service1是创建的服务名

  5、删除服务

    sc delete service1

    其中service1是创建的服务名

四、批处理

(新建一个txt文件,自己命名,把后缀改为.bat文件)

  1、创建、配置、开启服务

@echo.服务启动......
@echo off
@sc create test1 binPath= "C:\Users\Administrator\Desktop\win32srvdemo\win32srvdemo\Debug\win32srvdemo.exe"
@net start test1
@sc config test1 start= AUTO
@echo off
@echo.启动完毕!
@pause

  2、关闭服务

@echo.服务关闭
@echo off
@net stop test1
@echo off
@echo.关闭结束!
@pause

  3、删除服务

@echo.服务删除
@echo off
@sc delete test1
@echo off
@echo.删除结束!
@pause

Windows Service 学习系列(二):C# windows服务:安装、卸载、启动和停止Windows Service几种方式的更多相关文章

  1. 手把手教用C#编写Windows服务 并控制服务 安装、启动、停止、卸载

    Windows服务 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动, ...

  2. Windows 64下elasticsearch-1.7.1集群 安装、启动、停止

    elasticsearch-1.7.1 (es Windows 64) 安装.启动.停止的详细记录 https://blog.csdn.net/qq_27093465/article/details/ ...

  3. 【转】monkeyrunner学习总结二:连接、安装、启动

    一.获取packageName与startActivity 前置条件:已成功安装配置SL4A并连接PC调试(参见:monkeyrunner学习总结一:环境搭建:http://www.amsoft.cn ...

  4. Windows Service 学习系列(一):建立简单的Windows service

    参考:https://www.cnblogs.com/cncc/p/7170951.html 一.开发环境 操作系统:Windows 7 X64 开发环境:VS2017 编程语言:C# .NET版本: ...

  5. WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】

    http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...

  6. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  7. windows服务安装卸载

    到C盘下找到对应的开发VS的installutil.exe文件,复制到程序的执行文件(*.exe)相同目录下在开始程序中找到VS命令提示工具 转到程序的执行文件(*.exe)目录下 C:\>cd ...

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

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

  9. Windows Server 2012之活动目录域服务的卸载

    Windows Server 2012之活动目录域服务的卸载 2012-07-11 06:27:35 标签:Windows Server 2012 活动目录域服务 卸载 原创作品,允许转载,转载时请务 ...

随机推荐

  1. 图像识别基本算法之SURF

    图像识别.人脸识别可行的算法有很多.但是作为学习,如果能理清这个问题研究的历程及其主线,会对你深入理解当前研究最新的发展有很多帮助.本文是自己在学习过程中的笔记,大多内容来自于网络,出处请参考最后的引 ...

  2. .netcore使用SocketAsyncEventArgs Pool需要注意!

    在.net中做网络通讯往往都会用到SocketAsyncEventArgs,为了得到更好的性能配合Pool复用SocketAsyncEventArgs可以得到一个更好的效果,但在dotnet core ...

  3. Zookeeper~Linux环境下的部署

    介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...

  4. 理解和使用Promise.all和Promise.race

    一.Pomise.all的使用 Promise.all可以将多个Promise实例包装成一个新的Promise实例.同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回 ...

  5. 初探Google Guava

    Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...

  6. 流式大数据计算实践(4)----HBase安装

    一.前言 1.前面我们搭建好了高可用的Hadoop集群,本文正式开始搭建HBase 2.HBase简介 (1)Master节点负责管理数据,类似Hadoop里面的namenode,但是他只负责建表改表 ...

  7. HDFS架构及原理

    原文链接:HDFS架构及原理 引言 进入大数据时代,数据集的大小已经超过一台独立物理计算机的存储能力,我们需要对数据进行分区(partition)并存储到若干台单独的计算机上,也就出现了管理网络中跨多 ...

  8. C# Quartz定时任务corn时间设置详解

    http://cron.qqe2.com/  如果不会 或者想检验自己是否写的对就  通过这个网站 检测 或自动生成 *    *         *     *      *      *      ...

  9. 接口测试之深入理解HTTPS

    前言 随着网络安全问题越来越被重视,HTTPS协议的使用已经逐渐主流化.目前的主流站点均已使用了HTTPS协议:比如:百度.淘宝.京东等一二线主站都已经迁移到HTTPS服务之上.而作为测试人员来讲,也 ...

  10. Elasticsearch系列(3):Elasticsearch操作入门

    创建Index 新建Index,可以直接向Elastic服务器发送PUT请求,比如下面的命令创建了一个名为:logdb的Index. [root@elsearchserver ~]# curl -X ...