zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    MVC5+EF6简单实例以原有SQLServer数据库两表联合查询为例
    ArcGIS生成根据点图层生成等值面并减小栅格锯齿的操作步骤
    EF6+MVC5之Oracleo数据库的Code First方式实现
    jquery写的tab切换效果 非常简单
    APP消息推送是否进入消息中心和click、receive事件分析
    Android APP切换到后台接收不到推送消息
    js写的简单轮播图
    凉凉的笔记 two day
    凉凉的笔记 one.day
    在SQL Server数据库中批量导入数据的四种方法
  • 原文地址:https://www.cnblogs.com/LiChen19951127/p/11155395.html
Copyright © 2011-2022 走看看