接下来这里我对Windows Service程序的创建、部署等方面做简单描述。

前言

  这里首先有个问题,什么是Windows Service,也就是我们Windows服务。微软的官方定义是这样的:Microsoft Windows 服务(即以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。Windows服务能够随着我们主机开机而自动启动,不显示任何用户界面,可以对服务进行启动、停止、暂停、重启等,是一个后台进程。
  通过下面的方法可以查看到我们计算机上面的服务:
  1. 按【Win+R】打开运行窗口,键入 services.msc 命令,回车;

  2. 在弹出的窗体中显示的列表中的即为Windows Service。

创建Windows Service应用程序

  打开Visual Studio 2019进入创建新项目界面,选择 Windows 服务(.NET Framework) 类型项目,点击下一步进行创建新项目。

  打开创建好的解决方案中的文件 Program.cs ,代码如下所示:

using System;namespace WindowsServiceDemo
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>static void Main(){ServiceBase[] ServicesToRun;ServicesToRun = new ServiceBase[]{//这里添加注册需要执行的服务程序new Service1()};ServiceBase.Run(ServicesToRun);}}
}

  这里我删除原来的 new Service1() 服务,添加一个 ServiceDemo() 的方法并创建方法,该方法代码如下:

using System.IO;
using System.ServiceProcess;namespace WindowsServiceDemo
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>static void Main(){ServiceBase[] ServicesToRun;ServicesToRun = new ServiceBase[]{//这里添加注册需要执行的服务程序ServiceDemo()};ServiceBase.Run(ServicesToRun);}private static ServiceBase ServiceDemo(){StreamWriter streamWriter = new StreamWriter(@"E:\Demo.txt", true, System.Text.Encoding.Default);streamWriter.WriteLine("测试的Windows Service已经开始执行!");streamWriter.Flush();streamWriter.Close();return new ServiceBase();}}
}

  选择 Release 解决方案配置[创建Windows Service建议用这种配置去生成项目],重新生成一下项目。

部署与卸载Windows Service

  打开生成好的 Release 文件,复制 exe 后缀的文件路径及文件名以备用。
  以管理员方式打开 Windows PowerShell ,执行命令 New-Service -Name "YourServiceName" -BinaryPathName <yourproject>.exe ,此时服务已经安装部署成功。如下所示:

  此时我们即可以 前言 中所示的方式打开服务查看是否创建成功。如下截图所示,我们已经创建成功,但此时的Windows服务并未处于启动状态,还需要 单击右键→启动 来启动服务,也可以通过 单击右键→属性 的窗体中配置服务的运行状态,根据 ServiceDemo() 方法的程序运行结果,我们可以在 E:\Demo.txt 路径下找到 Demo.txt 文件,并且能看到里面已经添加了一行内容。

  卸载Windows服务,可以通过在 Windows PowerShell 中输入命令 sc.exe delete "YourServiceName" 来卸载服务,这里需要注意的是卸载的服务需要处于停止运行状态。 此时回到服务会发现创建的服务已经不在列表中了。

  这里还需要提示一下,在编写代码时,注册的服务方法中不要存在死循环,否则服务启动将会失败。


这里给你留下微软官网教程文档:安装和卸载服务.


C#创建和部署Windows Service程序相关推荐

  1. 用VS(c#)创建、调试windows service以及部署卸载

    同事问到windows service的东东,现在整理一下,用c#如何创建一个windows service,以及如何调试.部署.卸载. 一.创建windows service 1. 打开VS2008 ...

  2. 【Visual Studio】Visual Studio 2019 创建 Windows 控制台程序 ( 安装 ‘使用 C++ 的桌面开发‘ 组件 | 创建并运行 Windows 控制台程序 )

    文章目录 一.安装 C++ 桌面开发组件 二.创建并运行 Windows 控制台程序 一.安装 C++ 桌面开发组件 打开 Visual Studio Installer , 点击 " 修改 ...

  3. aws部署java应用_在 Elastic Beanstalk 上创建和部署 Java 应用程序 - AWS Elastic Beanstalk...

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 在 Elastic Beanstalk 上创建和部署 Java 应用程序 AWS Elastic Beanstalk 支持 ...

  4. aws部署php程序,在 Elastic Beanstalk 上创建和部署 PHP 应用程序 - AWS Elastic Beanstalk

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 在 ...

  5. .NET开发Windows Service程序 - Topshelf

    在实际项目开发过程中,会经常写一些类似定时检查,应用监控的应用.这类应用在windows平台通常都会写成window service程序. 在百度上搜索一下'c#开发windows service', ...

  6. C#开发Windows Service程序

    Windows Service概念介绍 Windows Service,也称Windows服务,是32位Windows操作系统中一种长期运行的后台程序.它们长期后台运行,没有用户界面,默默无闻,但它们 ...

  7. [视频]用SQL Server Compact创建简单的Windows应用程序

    今天下午录制了一段 SQL Server Compact 应用程序开发的入门视频,帮助园子里的朋友打开 SQL Server Compact 开发的大门. 技术等级:100 准备环境:Visual S ...

  8. 创建一个Windows Service应用程序

    创建一个Windows Service应用程序 下载本文代码 见资源 正是由于.NET Framework的出现,才使你能够构建出在系统重新启动时自动运行的.无人参与的(unattended)应用程序 ...

  9. 【windows service】C# 创建Windows Service(Windows服务)程序

    C# 创建Windows Service(Windows服务)程序 很多年前大概08年做了一个windows桌面程序推送邮件给用户的程序,然后通过windows 计划任务每隔N分钟重复执行. 今天闲暇 ...

最新文章

  1. Cent0S 7上的图形安装
  2. java反射机制详解_JAVA反射机制详解_JSP/Java编程_互联网开发技术网_传播最新的编程技术_php361.com...
  3. mysql8.0.17压缩包安装教程_mysql 8.0.16 压缩包安装配置方法图文教程
  4. linux ls命令无法执行,更新了个依赖程序,结果悲剧了,连ls命令都不能用,大神帮帮忙!...
  5. 2017乌鲁木齐ICPC: K. Sum of the Line(容斥)
  6. 云单元架构,如何赋能数字化转型呢?
  7. Geoserver+postSQL+openlayer实现路径规划
  8. 捷联惯导系统(SINS)机械编排
  9. Java Web开发后端常用技术汇总
  10. HTML5页面如何在手机端浏览器调用相机、相册功能
  11. 类似熊猫金花挖词的SEO查询工具包
  12. 云计算安全知识CCSK V4 知多少
  13. 文献标识码与参考文献
  14. Excel转PDF 一百行代码超简单
  15. AtCoder Grand Contest 021完整题解
  16. 局域网 git服务器 虚拟机,centos71虚拟机搭建git服务器
  17. 基于android的检测心率,基于Android系统的心率信息监测软件的研究与实现
  18. spring boot 设置 wagon 自动打包部署插件在 debug 模式下运行就不打包部署
  19. tp5使用monolog_使用Monolog记录:从Devtools到Slack
  20. .net高级技术(class0515)

热门文章

  1. linux网卡桥接模式无法上网
  2. mysql创建序列发生器_字符控制发生器可以干啥
  3. goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇
  4. JMeter压力测试(一)
  5. C语言程序设计入门——平均值
  6. XP系统启动时滚动条总是时间很长
  7. double转百分数
  8. 共同抵制恶意APP CNCERT公布首批黑名单
  9. 斐波那契(Fibonacci)数列问题
  10. Cocos2dx lua 2.xpk 3.x偏Mac OS