一、创建一个Windows Service

        我的IDE开发工具使用的是vs2019,和之前的vs版本不大相同,所有添加了详细的截图说明。

        首先,选择新建项目,项目类型选择服务。

之后,选择Windows 服务(.NET Framework)

然后,修改项目名称,这里我们重命名为EmailService

然后点击创建,进行创建新项目。

二、创建服务安装程序

       首先来看下新建好的程序目录

       

接下来,我们对Service1重命名,重命名为mEmailService

2.1 添加安装程序

然后点击mEmailService.cs,鼠标右键出弹窗,点击添加安装程序。

之后程序就会自动安装并出现以下文件,如·下图所示:

    2.2 修改安装服务名

右键serviceInsraller1,选择属性,将ServiceName的值改为mEmailService。

属性中需要修改的项目如下图所示:

2.3 修改安装权限

右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。

三、写入服务代码

右键mEmailService,选择查看代码。也可以双击空白区域,也能出现代码区。

这时候会出现以下代码:

 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
11 namespace EmailService
12 {
13 public partial class mEmailService : ServiceBase
14 {
15 public mEmailService()
16 {
17 InitializeComponent();
18 }
19
20 /// <summary>
21 /// 服务启动代码
22 /// </summary>
23 /// <param name="args"></param>
24 protected override void OnStart(string[] args)
25 {
26 //TODO
27 }
28
29 /// <summary>
30 /// 服务停止代码
31 /// </summary>
32 protected override void OnStop()
33 {
34 //TODO
35 }
36 }
37 }

EmailService初始化代码

四、创建安装脚本

在项目中添加2个文件如下(必须是ANSI或者UTF-8无BOM格式):

    

4.1 安装脚本Install.bat 【注意对应关键字】

      

代码:

1 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe  %~p0EmailService.exe
2 Net Start mEmailService
3 sc config mEmailService start= auto

Install.bat 代码

4.2 卸载脚本Uninstall.bat 【注意对应关键字】

代码:

1 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u %~p0EmailService.exe

Uninstall.bat 代码

  4.3 安装脚本说明

第二行为启动服务。

第三行为设置服务为自动运行。

这2行视服务形式自行选择。

  4.4 脚本调试

如果需要查看脚本运行状况,在脚本最后一行加入pause

 5 以管理员身份CMD注册,避免没有操作权限

在命令行里定位到InstallUtil.exe所在的位置

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

安装服务命令

命令 :InstallUtil.exe  Path\ZdwWindowsService.exe

其中 Path指路径

成功之后就可以在服务中看到你刚刚新建的服务了。

c# vs2019 Window服务搭建的更多相关文章

  1. C#编写window服务,一步一步(1)

    Window服务是啥,这里就不废话了,如何用在哪里用也不废话了,这里我这篇文章只是详述了我在vs2012中创建window服务的经过,希望对你有所帮助. 另外:我在编写服务过程中参考了 Profess ...

  2. WPF Window 服务安装

    一.安装服务 1.已管理员的身份启动CMD 2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车 3.输入 InstallUtil.exe ...

  3. Window服务初级教程以及log4net配置文件初始化

    Window服务初级教程:http://www.jb51.net/article/48987.htm 另外,配置log4net这个日志功能的时候需要初始化,不然会报没有初始化的错误,而且初始化的节点应 ...

  4. C# 编写Window服务基础(一)

    一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...

  5. C# 编写短信发送Window服务

    我们做项目过程中,一般都会有发送短信的需求.最常见的就是户注册或者登录时发送短信验证码.不同类型的短信发送,我们都可以放到到一张短信表中,然后通过一个定时的作业去执行短信发送.而定时作业的执行,我们就 ...

  6. 自定义Window 服务

    自定义window 服务 开发到使用的流程: 1.完成对应的代码之后(代码在底下),右键MyService.cs 添加安装程序 2.添加window服务安装程序打开Service1.cs[设计]页面, ...

  7. window服务创建

    第一步:创建服务 第二步:在Service1.cs视图中 右键 选择”添加安装程序” 这里要注意几个细节 设置上面的属性 这两个分别有属性,具体网上查使用方式 3 实例代码编写 主要下面几个方法 pr ...

  8. ServiceStack.Hello——跨平台.net REST api服务搭建

    ServiceStack.Hello--跨平台.net REST api服务搭建 自己创建: https://github.com/ServiceStack/ServiceStack/wiki/Cre ...

  9. WCFRESTFul服务搭建及实现增删改查

    WCFRESTFul服务搭建及实现增删改查 RESTful Wcf是一种基于Http协议的服务架构风格,  RESTful 的服务通常是架构层面上的考虑. 因为它天生就具有很好的跨平台跨语言的集成能力 ...

随机推荐

  1. shellcode注入原理

    我们直接写入可能无法执行 unsigned char data[130] = { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x0C, 0xC7, 0x45, 0xF8, 0x00, ...

  2. git push 提交时出错 the remote end hung up unexpectedly

    错误原因 与远程服务的连接中断,但是检查发现origin还在,可能是文件太大,缓存不够,增加缓存大小 解决方案 专案目录 >.git >config 在末尾增加如下代码 [http] po ...

  3. Python练习题 038:Project Euler 010:两百万以内所有素数之和

    本题来自 Project Euler 第10题:https://projecteuler.net/problem=10 # Project Euler: Problem 10: Summation o ...

  4. 学习fastapi middleware 源码调用顺序

    请求流程如图 本次学到的新东西: functools.partial 可以代码重用 用于在哪些通用的方法上加上更多的参数 try: finally可以当go的defer用 即使return后 fina ...

  5. MacOS下Terminal获取GPS经纬度坐标

    通过命令行直接获取经纬度坐标MacOS 首先下载WhereAmI,最新版本: https://github.com/robmathers/WhereAmI/releases/download/v1.1 ...

  6. 《穷查理年鉴》贪嗔痴 & 懒贪装(关于败坏)

    贪嗔痴 & 懒贪装 1)伤害 041.仇恨加重伤害,漠视消除伤害. 042.90%的伤害是自己造成的. 044.伤害你的敌人使你比他更低下;仇恨使你和他一样;宽恕才能让你超越他. 109.让仇 ...

  7. 最全vue的vue-amap使用高德地图插件画多边形范围

    一.在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代码如下: import Vue from 'vue' import VueAMap from 'vue-amap' ...

  8. 一、Vuforia_AR

    一.AR概念: 增强现实(Augmented Reality,简称AR),是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体.三维建模.实时跟踪及注册.智能交互.传感等多种技术手段,将计算机生 ...

  9. BeetleX之webapi使用入门

    BeetleX是TCP通讯应用组件,在它之上可以扩展任何基于TCP的应用通讯功能.FastHttpApi是组件扩展的一个Http/Https/Websocket服务组件,它提供的功能丰富,包括功能有: ...

  10. Elasticsearch(3):别名

      ES中可以为索引添加别名,一个别名可以指向到多个索引中,同时在添加别名时可以设置筛选条件,指向一个索引的部分数据,实现在关系数据库汇总的视图功能,这就是ES中别名的强大之处.别名是一个非常实用的功 ...