一、创建一个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. Java新特性:数据类型可以扔掉了?

    在很久很久以前,我们写代码时要慎重的考虑变量的数据类型,比如下面这些: 枚举:尽管在 JDK 5 中增加了枚举类型,但是 Class 文件常量池的 CONSTANT_Class_info 类型常量并没 ...

  2. TB级倾斜模型加载速度太慢?这是我见过最快的加载方式没有之一

    随着无人机性能快速提升,单个项目涉及到的倾斜摄影模型数据范围.数据量及单个模型体积也在不断变大,带来的问题是数据显示速度却越来越慢,那么如何在不升级配置的情况下提升模型的加载速度呢?   TB级倾斜摄 ...

  3. 吴恩达Machine Learning学习笔记(四)--BP神经网络

    解决复杂非线性问题 BP神经网络 模型表示 theta->weights sigmoid->activation function input_layer->hidden_layer ...

  4. Windows下设置Mongodb用户名密码

    MongoDB认证: 在默认的情况下,Mongodb是监听在127.0.0.1 IP上的,端口号默认为27017,任何客户端都可以连接,不需要认证 默认情况下,Mongodb也是没有管理账户的,除非你 ...

  5. WEB通信及前后端组成

    NDS(域名系统) 按个人的理解,就是将域名和IP映射,通过输入域名,DNS 找到对应的域名的IP地址,即可访问. NDS请求步骤: 当用户输入域名(例:www.baidu.com),回车那一刻: 1 ...

  6. java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified.解决以及探究

    java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified. at org.springframework ...

  7. 深入解析Vue里函数的调用顺序介绍

    今天为大家分享一篇对vue里函数的调用顺序介绍,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. method用来定义方法的,比如你@click=& ...

  8. modelviewset views

    Python 1.4创建user/serializers.py写序列化器 from rest_ framework import serializers from user .models impor ...

  9. Python-一切皆对象

    Python 动态.灵活根本是什么? Python中一切皆对象,面向对象更加彻底,函数.类也是对象,属于一等公民 一等公民特性 1. 可以赋值给一个变量 def name(name="北门吹 ...

  10. Centos-搜索文件或目录-find

    find 在指定的目录下查找指定的文件 相关选项 -type 指定文件类型 -name   指定文件名字,支持通配符 -gid   指定用户组ID -uid   指定用户ID -empty 查找长度为 ...