zoukankan      html  css  js  c++  java
  • windows服务搭建(VS2019创建Windows服务不显示安装组件)

    网址:

    https://www.bbsmax.com/A/D854ERrQdE/

    1.创建windows服务应用

    2.右键查看代码

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

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

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

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Diagnostics;
    6. using System.IO;
    7. using System.Linq;
    8. using System.ServiceProcess;
    9. using System.Text;
    10. using System.Threading.Tasks;
    11. using System.Timers;
    12.  
    13. namespace MyFirstWindowsService
    14. {
    15. public partial class Service1 : ServiceBase
    16. {
    17. public Service1()
    18. {
    19. InitializeComponent();
    20. }
    21.  
    22. protected override void OnStart(string[] args)
    23. {
    24. WriteRunLog("服务开始了!!!");
    25. Timer timer = new Timer();
    26. timer.Interval = ;
    27. timer.Elapsed += Timer_Elapsed;
    28. timer.Start();
    29. }
    30.  
    31. private void Timer_Elapsed(object sender, ElapsedEventArgs e)
    32. {
    33. WriteRunLog("当前时间:" + DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"));
    34. }
    35.  
    36. protected override void OnStop()
    37. {
    38. WriteRunLog("服务结束了!!!");
    39. }
    40.  
    41. /// <summary>
    42. /// 记录运行日志
    43. /// </summary>
    44. /// <param name="writeMsg"></param>
    45. public void WriteRunLog(string writeMsg)
    46. {
    47. FIle_Common file = new FIle_Common();
    48. file.CreateDire(@"F:ServiceLog");
    49.  
    50. using (FileStream fs = new FileStream(@"F:ServiceLog" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", FileMode.OpenOrCreate, FileAccess.Write))
    51. {
    52. StreamWriter m_streamWriter = new StreamWriter(fs);
    53.  
    54. m_streamWriter.BaseStream.Seek(, SeekOrigin.End);
    55.  
    56. m_streamWriter.WriteLine("mcWindowsService:" + writeMsg + " Time:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ");
    57.  
    58. m_streamWriter.Flush();
    59.  
    60. m_streamWriter.Close();
    61.  
    62. fs.Close();
    63. }
    64. }
    65. }
    66. }
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.IO;
    6.  
    7. namespace MyFirstWindowsService
    8. {
    9. public class FIle_Common
    10. {
    11. /// <summary>
    12. /// 创建文件夹
    13. /// </summary>
    14. /// <param name="sender"></param>
    15. /// <param name="e"></param>
    16. public void CreateDire(string path)
    17. {
    18. if (!Directory.Exists(path))
    19. {
    20. Directory.CreateDirectory(path);
    21. }
    22. }
    23. /// <summary>
    24. /// 删除文件夹
    25. /// </summary>
    26. /// <param name="sender"></param>
    27. /// <param name="e"></param>
    28. public void DeleteDire(string path)
    29. {
    30. if (Directory.Exists(path))
    31. {
    32. Directory.Delete(path);
    33. }
    34. }
    35.  
    36. /// <summary>
    37. /// 删除文件
    38. /// </summary>
    39. /// <param name="sender"></param>
    40. /// <param name="e"></param>
    41. public void DeleteDireOne(string path)
    42. {
    43. if (File.Exists(path))
    44. {
    45. File.Delete(path);
    46. }
    47. }
    48. }
    49. }

    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

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

    stop.bat

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

    运行statr.bat

    右键 我的电脑  管理

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

  • 相关阅读:
    750. 角矩形的数量(动态规划)
    Python中with标签的使用详解
    GraalVM
    spring 源码解析(二) 2.下载源码,及错误的排除。
    spring 源码解析(一) spring的架构
    词典
    java日志框架 (五)
    java日志框架 (四) 日志相关
    java日志框架 (三) 日志框架使用 之 SLF4J + Log4j2
    java日志框架 (二) 日志框架使用 之 SLF4J + logback
  • 原文地址:https://www.cnblogs.com/zxtceq/p/14750786.html
Copyright © 2011-2022 走看看