1.创建windows服务应用

2.右键查看代码

3.写个计时器Timer  using System.Timers;

如上图,按tab键快速操作  会自动创建一个委托

改为下边的方式,打印日志来记录服务运行

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using System.Timers; namespace MyFirstWindowsService
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
WriteRunLog("服务开始了!!!");
Timer timer = new Timer();
timer.Interval = ;
timer.Elapsed += Timer_Elapsed;
timer.Start();
} private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
WriteRunLog("当前时间:" + DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"));
} protected override void OnStop()
{
WriteRunLog("服务结束了!!!");
} /// <summary>
/// 记录运行日志
/// </summary>
/// <param name="writeMsg"></param>
public void WriteRunLog(string writeMsg)
{
FIle_Common file = new FIle_Common();
file.CreateDire(@"F:\ServiceLog\"); using (FileStream fs = new FileStream(@"F:\ServiceLog\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", FileMode.OpenOrCreate, FileAccess.Write))
{
StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(, SeekOrigin.End); m_streamWriter.WriteLine("mcWindowsService:" + writeMsg + " Time:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\n"); m_streamWriter.Flush(); m_streamWriter.Close(); fs.Close();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO; namespace MyFirstWindowsService
{
public class FIle_Common
{
/// <summary>
/// 创建文件夹
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void CreateDire(string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
/// <summary>
/// 删除文件夹
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void DeleteDire(string path)
{
if (Directory.Exists(path))
{
Directory.Delete(path);
}
} /// <summary>
/// 删除文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void DeleteDireOne(string path)
{
if (File.Exists(path))
{
File.Delete(path);
}
}
}
}

4.右键添加安装程序

5.我用的VS2019  .net4.8  此时安装组件已经写好了,但是设计图里不显示,下边附上解决方案

6.解决方法:在这个类上边 using System.ServiceProcess;

此时 两个安装组件都显示出来了

7.设置服务安装属性

Description:对服务的说明

DisplayName:向用户标识服务的友好名称

ServiceName:表示在系统服务中的名称

StartType:启动服务的方式和时间,如果为Manual则手动启动,默认停止,如果为Automatic为自动启动

Accout:账户类型,LocalSystem本地系统服务

此时,Windows Service就编写完了

8.安装Windows Service

生成解决方案 进入\bin\Debug 下 添加两个批处理文件来安装 卸载服务

statr.bat    MyFirstWindowsService.exe是\Debug下生成的.exe文件   MyFirstWindowsService是上边设置的ServiceName

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe %~dp0MyFirstWindowsService.exe
Net Start MyFirstWindowsService
sc config MyFirstWindowsService start= auto
pause

stop.bat

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u %~dp0MyFirstWindowsService.exe
pause

运行statr.bat

右键 我的电脑  管理

若要卸载该服务,运行stop.bat

windows服务搭建(VS2019创建Windows服务不显示安装组件)的更多相关文章

  1. [Solution] Microsoft Windows 服务(1) C#创建Windows服务

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

  2. 篇章一:SVN服务搭建【基于Windows server 2008R2 + Windows7】

    1.软件下载 1.1 软件介绍 Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站 ...

  3. windows下使用IIS创建git服务

    Bonobo Git Server 下载地址: https://bonobogitserver.com/ 安装方法:https://bonobogitserver.com/install/ 配置简单, ...

  4. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  5. C#创建Windows Service(Windows 服务)基础教程

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  6. C# windows服务:创建Windows服务(Windows Services)的一般步骤

    C#创建Windows服务(Windows Services) Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Wind ...

  7. C# 创建Windows Service(Windows服务)程序

    本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2 ...

  8. c#创建windows服务(创建,安装,删除)

    一.在vs中创建一个window服务 二.进入Service1.cs页面后 右击----创建安装程序,安装程序创建成功后---会出现ProjectInstaller.cs文件 三.进入ProjectI ...

  9. windows下搭建nginx-rtmp服务器

    windows下搭建nginx-rtmp服务器 windows下搭建nginx-rtmp服务器 准备工作 安装MinGW 安装Mercurial 安装strawberryperl 安装nasm 下载n ...

随机推荐

  1. POI 导入、导出Excel

    POI,全称Apache POI,是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.项目地址:Apache POI - t ...

  2. Codeforces Round #561 (Div. 2) E. The LCMs Must be Large(数学)

    传送门 题意: 有 n 个商店,第 i 个商店出售正整数 ai: Dora 买了 m 天的东西,第 i 天去了 si 个不同的个商店购买了 si 个数: Dora 的对手 Swiper 在第 i 天去 ...

  3. 2018-8-10-C#-代码占用的空间

    title author date CreateTime categories C# 代码占用的空间 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17:23 ...

  4. SpringBoot整合Redis乱码原因及解决方案

    问题描述:springboot使用spring data redis存储数据时乱码 redis key/value 出现\xAC\xED\x00\x05t\x00\x05 问题分析: 查看RedisT ...

  5. 深度学习——RNN

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 原理 RNN.LSTM ...

  6. dotnet core 发布只带必要的依赖文件

    在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...

  7. Appium中使用相对路径定位元素Xpath

    1.若页面该元素没有ID 2.找出该元素父类,并拷贝出父类的class(类名)和ID 3.点击搜索图标,进行查找 selector内容://android.widget.LinearLayout[@r ...

  8. JavaScript数组的方法 | 学习笔记分享

    数组 数组的四个常用方法 push() 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度 可以将要添加的元素作为方法的参数传递,这些元素将会自动添加到数组的末尾 pop() 该方法可以删除 ...

  9. world 文档中表格旋转180°

    一个好朋友给我打电话,说是有个wps操作把他难住了,他常年跟wps 形影不离,你都搞不定,我都不怎么用.听完他说的以后,我才明白他要的效果是怎么样的,贴图来看: 其实像直接转化成这种效果没有办法,但是 ...

  10. 分布式架构基石RPC的实现原理

    RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...