C# 给windows服务传参
MicroSVC
0、安装、卸载、启动服务,参考:https://blog.csdn.net/weixin_42992927/article/details/132099960
1、客户端升级更新,上传更新包,客户端登录时提示更新
2、服务端升级更新,上传更新包,更新服务端站点
3、服务端定时任务,定时删除临时文件,SQL语句
4、服务端审计反馈,服务器资源超负荷时,推送消息到终点
5、共享资源管理,上传或下载共享资源
6、文件上传,上传文件到指定的站点 或者 目录
7、数据库同步、文件同步
发送文件到客户端 | ||
客户端 | Sokect | 服务端 |
启动 | 连接=》 | 记录 |
发送检测版本 | 软件名、版本号=》 | 检测 |
收到通知 | 《= | 返回最新版本号 |
更新版本信息 | ||
发送文件到服务端 | ||
更新升级发送文件 | =》 | 接收文件名|类型|命令 |
保存文件,更新版本信息 | ||
《= | 保存成功通知 | |
获取数据库的数据 | ||
发送请求 | =》 | 返回数据列表 |
接收数据 | 《= |
参考:https://blog.csdn.net/huang714/article/details/136797577
示例,windows服务
public partial class MyService : ServiceBase { public MyService() { InitializeComponent(); } protected override void OnStart( string [] args) { // 这里的args数组包含了传递给服务的参数 if (args.Length > 0) { // 处理参数 // 例如: 参数可能是配置文件路径或其他设置 string mySetting = args[0]; // ... 处理参数的代码 ... } } } |
CMD 调用
sc start MyService param1 param2 |
安装、卸载、关闭服务,参考:
https://www.cnblogs.com/NaturalSelection/p/4334572.html
https://www.cnblogs.com/amylis_chen/p/8972014.html
二、实现Windows 定时任务计划(Task Scheduler)
参考:https://www.cnblogs.com/mq0036/p/18041048
通过NuGet安装Microsoft.Win32.TaskScheduler
包
using System; using Microsoft.Win32.TaskScheduler; class Program { static void Main( string [] args) { using (TaskService ts = new TaskService()) { // 创建新的任务定义并指定任务的名称 TaskDefinition td = ts.NewTask(); td.RegistrationInfo.Description = "测试任务" ; // 创建触发器,设置任务的起始时间和频率 DailyTrigger dailyTrigger = new DailyTrigger(); dailyTrigger.StartBoundary = DateTime.Now; td.Triggers.Add(dailyTrigger); // 创建操作 - 运行程序 td.Actions.Add( new ExecAction( "notepad.exe" , null , null )); // 注册任务到根文件夹下 ts.RootFolder.RegisterTaskDefinition( "MyNotepadTask" , td); } } } |
这段代码创建了一个每天都会运行的任务,它会打开记事本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-04-13 C# 单独 exe 文件制作