.NET自动服务程序—C#(一)

告别Keil?在Mac上配置STM32CubeIDE + CMSIS-DAP调试器全攻略(含常见报错解决) 本文详细介绍了在Mac平台上配置STM32CubeIDE与CMSIS-DAP调试器的全流程,包括硬件准备、软件安装、工程创建及调试优化。通过实战指南,帮助开发者高效完成STM32开发,解决常见报错问题,提升开发效率。 阅读详情

.NET自动服务程序—C#(一)

 

追风(VisualSW)

 

应用程序开发中,常常需要实现这样一种功能:让服务器在每天的特定时刻运行固定的程序(或者实现固定的操作),比如让系统在每天的2:00备份数据库数据。要实现这样的功能,我们可以使用Windows服务(Windows service)。

Windows service是一种系统自动的、无人值守的程序(仅存在于Windows NT、2000和XP操作系统中),它能够在系统启动时开始运行。用户可以通过Service Control Manager (SCM) applet或者一些特殊的service-control应用来访问Windows service,使服务在没有用户登录到系统之前执行。

        在.NET出现以前,编写Windows服务是VC++、Delphi才能办到的事情,

VB必须使用第三方控件才可以办到,而且编写起来特别的复杂。使用Microsoft®.NET Framework,我们可通过创建作为服务安装的应用程序来方便地创建Windows服务。

 

设计:

一个Windows服务程序,按照配置文件中的配置,在指定时刻运行指定程序。

流程:

启动服务à读取配置文件à启动定时器

定时器定时触发(比如每隔30秒)à循环需要运行组件时间à时间到à运行指定程序

编写:

创建一个Windows Service

将Server1.cs更名为SchedulerServer.cs,

双击SchedulerServer.cs打开设计页面,从工具栏的组件中拖Timer控件。

更名为SchedulerTimer,并设置Enabled为flase。

注意必须是Components里面的Timer控件,Windows Forms里面的Timer控件不行。

 

F7浏览代码可以看到如下代码

 

服务器启动的时候运行:

/// <summary>

/// Set things in motion so your service can do its work.

/// </summary>

protected override void OnStart(string[] args)

{

        // TODO: Add code here to start your service.

}

 

服务停止的时候运行:

/// <summary>

/// Stop this service.

/// </summary>

protected override void OnStop()

{

        // TODO: Add code here to perform any tear-down necessary to stop your service.

}

 

添加写日志函数,用来记录服务的日志:

public static void WriteLog(string strLog)

                {

                        string strPath;

                        strPath=System.Environment.SystemDirectory;

                        strPath+=@"/SchedulerServer.txt";

                        FileStream fs = new FileStream(strPath,FileMode.OpenOrCreate,FileAccess.Write);

                        StreamWriter m_streamWriter = new StreamWriter(fs);

                        m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

                        m_streamWriter.WriteLine(strLog);                       

                        m_streamWriter.Flush();

                        m_streamWriter.Close();

                        fs.Close();

                }

 

 

自动服务配置文件

配置文件保存在系统目录,Windows 2000为WinNT/System32,文件名为SchedulerServer.xml,存储了自动服务的所有配置信息,下面我们来看SchedulerServer.xml的格式:

<SchedulerServer>

        <AutoServer>

                <FilePath>C:/AutoBackup.dll</FilePath>

                <RunTime>02:00</RunTime>

        </AutoServer>

        <AutoServer>

                <FilePath>D:/AutoMail.dll</FilePath>

                <RunTime>03:00</RunTime>

        </AutoServer>

</SchedulerServer>

 

FilePath设置需要运行的组件的路径

RunTime设置需要运行的时间

如果有多个程序需要运行,只需要添加<AutoServer>节点

 

程序中添加读取配置文件函数:

private bool ReadConf()

                {

                        try

                        {

                                string strPath;

                                XmlDocument xmldoc=new XmlDocument();

                                XmlNodeList xmlnd;

 

                                strPath=System.Environment.SystemDirectory+@"/SchedulerServer.xml";

                                xmldoc.Load(strPath);

                                xmlnd=xmldoc.SelectNodes("SchedulerServer/AutoServer");

                                arrConf=new String[2,xmlnd.Count];

                               

                                for(int i=0;i<xmlnd.Count;i++)

                                {

                                        arrConf[0,i]=xmlnd[i].SelectSingleNode("FilePath").InnerXml.Trim();

                                        arrConf[1,i]=xmlnd[i].SelectSingleNode("RunTime").InnerXml.Trim();

                                }

                                return true;

                        }

                        catch(Exception e)

                        {

                                WriteLog(DateTime.Now.ToString());

                                WriteLog("Read Configuration Error:");

                                WriteLog(e.ToString());

                                return false;

                        }

 

                }
手把手教你学Simulink——基于Simulink的蚁群算法路径规划仿真建模示例 路径规划是机器人导航系统中的核心任务之一,旨在为机器人找到一条安全且高效的路径,使其能够从起点到达目标点,同时避免与障碍物发生碰撞。在开始之前,需要定义工作环境(例如地图),包括起点、终点以及可能存在的障碍物位置。通过本指南,我们介绍了如何基于Simulink结合MATLAB实现蚁群算法的路径规划仿真建模。 阅读详情

相关推荐

实战指南:基于ELK与Grafana构建天融信防火墙日志可视化看板

本文详细介绍了如何基于ELK与Grafana构建天融信防火墙日志可视化看板,包括环境准备、日志收集与解析配置、Elasticsearch存储优化、Grafana看板设计等关键步骤。通过实战案例和优化技巧,帮助用户高效处理天融信防火墙日志,实现安全态势的可视化监控与分析。

weixin_34246529的博客 226

Window Service 创建:在后台执行一个服务,可定时做一些操作,如轮询数据库,定时发邮件

1,Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合。它没有用户界面,并且也不会产生任何可视输出。任何用户消息都会被写进Windows事件日志。计算机启动时,服务会自动开始运行。它们不要用户一定登录才运行,它们能在包括这个系统内的任何用户环境下运行

瞧字不识 5521

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1438

用C#写一个简单的数据同步Windows服务(一)

需求概述从某中间数据库中取得指定的未同步的数据,同步到另一个库的某些表中。使用一个编号字段进行匹配,同步完成后将未同步的数据标识为已同步状态。该服务可定时自动执行。设计理念程序、数据、配置分开,以使功能更灵活。数据库操作类,使用通用的OldDB相关类,以增强兼容性。关键操作记录到日志中,以方便在出现问题时进行排查。配置文件&lt;?xml version="1.0" encoding="utf-8...

a_dev的专栏 3801

Windows升级保留个人文件和应用灰色?改注册表版本指纹

Windows 升级安装并非简单跳过下一步,安装程序会先读取注册表中 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion 下的 EditionID、ProductName、CompositionEditionID 等版本指纹,与目标镜像 install.wim/esd 记录的版本类型做双向匹配。若当前系统被识别为 LTSC、精简版或跨版本降级,兼容性扫描会判定升级路径不可用,于是“保留个人文件和应用”变灰,只能全新安装。理解版本指纹与升级可行性表的匹配机制,可

weixin_31986143的博客 372

调用D3D11硬解码和渲染VideoProcessor版本

在https://blog.csdn.net/robothn/article/details/78781321一文中使用shader来显示FFMPEG硬解码后的YUV420P,本文调用D3D11的videoprocessor来进行图像空间变换和尺寸变换,取得了较好的效果。 1.初始化D3D11设备、videodevice等数据结构 FFMPEG调用D3D11硬解码,获取其对应的device,videodevice。。。 FFMPEG使用av_hwdevice_find_type_by_name调用D3d11

zlyadvocate的博客 9285

C# Windows 服务程序的开发

安装程序将服务的可执行文件注册到系统服务管理器中,并提供安装、卸载和配置服务的功能。在这个类中,需要重写 OnStart 和 OnStop 方法,分别用于处理服务的启动和停止逻辑。通过使用 .NET 提供的相关类和方法,可以轻松地创建、安装、启动和停止 Windows 服务。Windows 服务是一种特殊类型的应用程序,它可以在操作系统启动时自动启动,并在后台持续运行,而无需用户交互。这里重写了一个 OnStart 和 OnStop 方法,意思是程序启动的时候执行一次,和程序关闭的时候执行一次。

熊思雨的博客 5140

Hermes Agent 实战复盘:5 类超预期场景与3 个典型翻车案例分析

揭示 Hermes Agent 在 PDF 智能解析、低代码评审结构化、Kanban 任务驱动执行等五类未被文档覆盖的超预期落地场景,核心依赖 `soul.md`/`CLAUDE.md`/`kanban` 三层上下文建模机制,而非单纯堆 token 或 agent 数量。

weixin_42520239的博客 384

使用C#创建安装Windows服务程序(干货)

Windows服务是在Windows操作系统上,以后台形式运行的应用程序。最近在公司要求使用Windows服务作为消息队列的消费端,所以自行研究了一下C#中Windows服务如何创建以及如何使用,以及部署的方式。

西瓜程序猿 7034

手把手教你学Simulink--基于新能源并网与协调控制的场景实例:双馈异步风力发电机并网运行仿真

随着“双碳”目标的推进,风力发电已成为新能源并网的核心组成部分。其中,双馈异步风力发电机(Doubly-Fed Induction Generator, DFIG)因其变频器容量小(仅处理转差功率)、可实现有功/无功独立调节、运行效率高等优势,广泛应用于现代兆瓦级风电机组。DFIG系统通过转子侧变流器(Rotor-Side Converter, RSC)和网侧变流器(Grid-Side Converter, GSC)实现对发电机转矩与电网无功的精确控制,支持最大功率点跟踪(MPPT)和。

MHD0815的博客 280

【日志】Prometheus/Loki+Alertmanager+Grafana监控告警

参考文章:匹配写法:https://blog.ossq.cn/2674.html。

CN_Eden 1320

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

Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的。所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入。 本文介绍了如何用C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。 一、创建一个Windows Service

zhangwike的专栏 620

Oracle EBS Tax 四国实现详解:印度、巴西、美国、阿根廷

印度:务必启用India Localization模块,不要尝试用标准EBTax模拟GST逻辑 巴西:必须配置NF-e接口,建议聘请本地税务顾问设置CFOP和NCM代码映射 美国:跨州业务强烈建议购买Vertex或Avalara服务,自建税率表维护成本极高 阿根廷:注意1:1:1架构限制,提前规划Legal Entity和OU结构

金牌架构师 260

.net自动服务程序—C#(一)

应用程序开发中,常常需要实现这样一种功能:让服务器在每天的特定时刻运行固定的程序(或者实现固定的操作),比如让系统在每天的2:00备份数据库数据。要实现这样的功能,我们可以使用Windows服务(Windows service)。Windows service是一种系统自动的、无人值守的程序(仅存在于Windows NT、2000和XP操作系统中),它能够在系统启动时开始运行。用户可以通过Se

战海滨的专栏 612

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

.NET自动服务程序—C#(二)

.NET自动服务程序—C#(二)追风(VisualSW)启动服务:定义两个变量:private string[,] arrConf;保存配置信息private Assembly[] assObj;加载组件 在OnStart事件中添加如下代码:protected override void OnStart(string[] args){              

VisualSW的专栏 2556

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C#创建Windows服务程序

一.Windows服务介绍:   Windows服务以前被称作NT服务,是一些运行在Windows NT、Windows 2000和Windows XP等操作系统下用户环境以外的程序。在以前,编写Windows服务程序需要程序员很强的C或C++功底。然而现在在Visual Studio.Net下,你可以运用C++或Visual C#或Visual Basic.Net很轻松的创建一个Window

杨友山 9819

C# 服务程序 弹窗

C#服务程序编写

weixin_42176639的博客 4186

用Visual C#创建Windows服务程序

 一.Windows服务介绍:  Windows服务以前被称作NT服务,是一些运行在Windows NT、Windows 2000和Windows XP等操作系统下用户环境以外的程序。在以前,编写Windows服务程序需要程序员很强的C或C++功底。然而现在在Visual Studio.Net下,你可以运用C++或Vis...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 730

.NET自动服务程序—C#

应用程序开发中,常常需要实现这样一种功能:让服务器在每天的特定时刻运行固定的程序(或者实现固定的操作),比如让系统在每天的2:00备份数据库数据。要实现这样的功能,我们可以使用Windows服务(Windows service)。  Windows service是一种系统自动的、无人值守的程序(仅存在于Windows NT、2000和XP操作系统中),它能够在系统启动时开始运行。用户可以通过

szg3827的专栏 574

net安全(一)——C#语法

单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序,VB也是用来编写net程序的。使用委托的这个有用的特点,您可以创建一个委托被调用时要调用的方法的调用列表。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。方法定义了类的行为。

Xzy03210321的博客 1232
上一篇: .NET自动服务程序—C#(二)
下一篇: Com组件提供Web Services(一)
笑对最好
博客等级 码龄24年 4粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值