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);
        }
    }
}

 这段代码创建了一个每天都会运行的任务,它会打开记事本。

posted @ 2024-04-13 11:17  microsoft-zhcn  阅读(155)  评论(0)    收藏  举报