首页 > 系统相关 >使用C#写一个Windows服务

使用C#写一个Windows服务

时间:2022-12-15 15:33:56浏览次数:64  
标签:服务程序 回滚 exe 服务 C# Windows 安装

  1. 创建服务程序
    在这里插入图片描述

可能你的VS里面没有【Windows服务】这个模板,那么你就需要通过“打开Visual Studio安装程序“,通过VisualStudio Installer来通过“修改”来安装【.NET桌面开发】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上面两个地方均可以进入对应的代码文件

public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Console.WriteLine("服务启动");
            new Thread(Run).Start();
        }

        protected override void OnStop()
        {
            Console.WriteLine("服务结束");
        }

        private void Run()
        {
            while (true)
            {
                Thread.Sleep(5000);
            }
        }
    }
 

注意:
很多人在写服务程序时,喜欢把自己线程的代码写在Proram.cs文件中,这个是不正确的,一般都写在服务类中的OnStart方法。因为OnStart方法才是你启动了服务才要开始干的事情。Proram.cs是安装服务完成时就开始干事情了。

通过以上,我们在Visual Studio的解决方案资源管理器中的项目上 右键- 生成 即可生成需要的Windows服务程序exe。
该exe不可直接运行,否则提示
在这里插入图片描述

  1. 安装Windows服务程序
    安装方式一:
    以管理员身份
  2. (否则,日志提示“在安装的“回滚”阶段发生异常。将忽略该异常并继续回滚。但是,在完成回滚后计算机可能无法完全还原到它的初始状态。“回滚”阶段已成功完成。已完成事务处理安装。安装失败,已执行回滚”等字样)
    打开CMD,进入目录【%systemroot%\microsoft.net\framework\v4.0.30319】使用工具InstallUtil.exe 工具
    安装服务命令 InstallUtil F:\ProjectWorkspace\WindowsService.exe
    卸载服务命令 InstallUtil /u F:\ProjectWorkspace\WindowsService.exe
    在这里插入图片描述
    安装方式二
    创建安装脚本
    在项目中添加2个文件如下(必须是ansi或者utf-8无bom格式):
    1)安装服务脚本install.bat
%systemroot%\microsoft.net\framework\v4.0.30319\installutil.exe windowsservicetest.exe
net start servicetest
sc config servicetest start=auto

第1行安装服务
第2行为启动服务。
第3行为设置服务为自动运行。

大写数字转换器 https://daxie.dianjilingqu.com/
如果需要查看脚本运行状况,在脚本最后一行加入pause

2)卸载脚本uninstall.bat

%systemroot%\microsoft.net\framework\v4.0.30319\installutil.exe/u windowsservicetest.exe
 
  • 1

服务安装完毕后,如图:
在这里插入图片描述
3. 启动服务失败
出现如下提示框 “。。。某些服务在未由其他服务或程序使用时将自动停止。”
在这里插入图片描述
此时我们可以在计算机日志中查找原因
在这里插入图片描述

  1. 调试服务程序
    首先启动上述服务。

参考:

https://www.dianjilingqu.com/

标签:服务程序,回滚,exe,服务,C#,Windows,安装
From: https://www.cnblogs.com/yuanyuzhou/p/16985134.html

相关文章

  • 沉铜/黑孔/黑影工艺,PCB该选哪一种?
    自1936年,保罗·艾斯纳正式发明了PCB制作技术,到现在,已过去80余年,PCB迅猛发展,并且成为电子行业必不可少的基础。虽然PCB一般只占成品电路板5~10%的成本,但PCB的可靠......
  • 回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测
    回归预测|MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测目录回归预测|MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测基本介绍模型描述预测效果......
  • CAD未协调的新图层怎么处理?
    在打开CAD图纸时,系统提示图形存在为协调的新图层是什么意思?所谓未协调图层,是指上次打印或者保存之类命令后新增的图层,大部分情况下增加新的外部参照时会把所有外部参照中的......
  • CAD标注样式设置怎么保存?
    CAD设计过程中,标注的应用十分广泛,设计师为了保证图面的清晰明了,通常会对CAD标注样式进行设置。如果下次想要直接调用当前标注样式,你知道CAD标注样式设置怎么保存?本文就和小......
  • 2022亚太C题详细思路
    2022年亚太今日已经正式开赛,为了帮助大家更好的选题建模,这里首先对ABC三道题目进行浅要评析,以方便大家更好的择题。同时相关资料也会后续进行补充。预计明日公布各题统计选......
  • CAD布局中有些视口内容不显示怎么办?
    CAD绘图过程中,为什么CAD布局中有些视口会显示为空白?CAD视口内容不显示时又该怎么办呢?本文小编就以浩辰CAD软件为例给大家分享一下CAD布局中有些视口内容不显示的原因以及解......
  • CAD怎么输入命令?CAD输入命令方法
    CAD设计过程中,如果想要有效地提高绘图效率,便要能够熟练掌握CAD命令快捷键的使用。了解了这些CAD常用命令后,你知道CAD怎么输入命令吗?本文小编给大家讲解一下浩辰CAD软件中CA......
  • CAD标注样式设置文件怎么输入使用?
    上节教程文章中小编给大家分享了CAD标注样式文件保存的详细操作步骤,那么,在下次CAD设计过程中,如果想要调用该标注样式,该如何将CAD标注样式设置文件输入使用呢?本文小编就来给......
  • CF1766E Descomposition
    【题意】Forasequenceofintegers$[x_1,x_2,\dots,x_k]$,let'sdefineitsdecompositionasfollows:Processthesequencefromthefirstelementtothe......
  • CSS object-fit 属性
    标签定义及使用说明object-fit属性指定元素的内容应该如何去适应指定容器的高度与宽度。object-fit一般用于img和video标签,一般可以对这些元素进行保留原始比例的......