一、创建一个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. Docker应用安装

    一.安装mysql 1.查看可用的 MySQL 版本 访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags . 可以通过 Sort by 查看其 ...

  2. 虚拟机Ubuntu(18.04.2)下安装配置Hadoop(2.9.2)(伪分布式+Java8)

    [本文结构] [1]安装Hadoop前的准备工作 [1.1] 创建新用户 [1.2] 更新APT [1.3] 安装SSH [1.4] 安装Java环境 [2]安装和配置hadoop [2.1] Had ...

  3. 针对于Java的35 个代码性能优化总结

    针对于Java的35 个代码性能优化总结前言代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的 ...

  4. SQL注入之Mysql报错注入

    --志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...

  5. Mac 环境下配置 MySQL 以及 Mac终端登录MySQL

    1.首先mysql官网下载Mac 版 mysql直接安装 2.打开偏好设置-> MySQL -> 查看是否开启mysql服务 3.打开终端 进入mysql目录: /usr/local/my ...

  6. IDEA搭建多模块maven项目

    目录 新建maven项目作为多模块的parent项目 新建模块 在parent项目中配置 pom api 模块搭建restful风格api Mybatis Generator的使用(mybatis 逆 ...

  7. spring整合(Junit、web)

    1.整合Junit (1)整合前的测试类代码 public class Test { public static void main(String[] args) { ApplicationConte ...

  8. tomcat源码--springboot整合tomcat源码分析

    1.测试代码,一个简单的springboot web项目:地址:https://gitee.com/yangxioahui/demo_mybatis.git 一:tomcat的主要架构:1.如果我们下 ...

  9. python_用户登录验证

    登录验证,三次机会,如何做? 1. 一个用户列表记录合法密码和用户名,一个小黑屋列表记录输错3次的用户, 一个中间列表记录所有用户输入,统计某个用户是否输错3次 2. 通过 in 判断一个元素是否在一 ...

  10. Leetcode-哈希表

    136. 只出现一次的数字 https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找 ...