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);
}
}
}
这段代码创建了一个每天都会运行的任务,它会打开记事本。

浙公网安备 33010602011771号