• windows服务搭建(VS2019创建Windows服务不显示安装组件)


    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 = 1000;
                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(0, SeekOrigin.End);
    
                    m_streamWriter.WriteLine("mcWindowsService:" + writeMsg + "  Time:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "
    ");
    
                    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

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

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

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe %~dp0MyFirstWindowsService.exe
    Net Start MyFirstWindowsService
    sc config MyFirstWindowsService start= auto
    pause

    stop.bat

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u %~dp0MyFirstWindowsService.exe
    pause

    运行statr.bat

     右键 我的电脑  管理

     

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

     

  • 相关阅读:
    技术转型之路开启
    kotlin入门 (教程难点)
    linux入门
    Code-Breaking Puzzles做题记录
    bugku-login4-CBC字节翻转攻击
    bugku-就五层你能解开吗WP
    上海市数学教材
    书目推荐
    Zeta(2) 有图版
    UnitTest测试框架全栈详解(十)
  • 原文地址:https://www.cnblogs.com/LiChen19951127/p/11155395.html
Copyright © 2020-2023  润新知