C#创建windows服务并定时执行

简介: 一、创建window服务 1、新建项目-->选择Windows服务。默认生成文件包括Program.cs,Service1.cs 2、在Service1.cs添加如下代码:        System.

一、创建window服务

1、新建项目-->选择Windows服务。默认生成文件包括Program.cs,Service1.cs

2、在Service1.cs添加如下代码:

       System.Timers.Timer timer1;  //计时器

        public Service1()

        {

            InitializeComponent();

        }

        protected override void OnStart(string[] args)  //服务启动执行

        {

            timer1 = new System.Timers.Timer();

            timer1.Interval = 3000;  //设置计时器事件间隔执行时间

            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);

            timer1.Enabled = true;

        }

        protected override void OnStop()  //服务停止执行

        {

            this.timer1.Enabled = false;

        }

 

        private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

        {

            //执行SQL语句或其他操作

        }

 

二、添加window服务安装程序

1、打开Service1.cs【设计】页面,点击右键,选择【添加安装程序】,会出现serviceInstaller1和serviceProcessInstaller1两个组件

2、将serviceProcessInstaller1的Account属性设为【LocalSystem】, serviceInstaller1的StartType属性设为【Automatic】,ServiceName属性可设置服务名称,此后在【管理工具】--》【服务】中即显示此名称

3、ProjectInstaller.cs文件,在安装服务后一般还需手动启动(即使上述StartType属性设为【Automatic】),可在ProjectInstaller.cs添加如下代码实现安装后自动启动

    public ProjectInstaller()

        {

            InitializeComponent();

            this.Committed += new InstallEventHandler(ProjectInstaller_Committed);   

        }

 

        private void ProjectInstaller_Committed(object sender, InstallEventArgs e)

        {

            //参数为服务的名字

            System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("服务名称");

            controller.Start();

        }   

 

三、安装、卸载window服务

1、输入cmd(命令行),输入cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319,2.0为cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

2、安装服务(项目生成的exe文件路径)

  InstallUtil "E:\WindowsService1\bin\Debug\WindowsService1.exe"

3、卸载服务

  InstallUtil  /u "E:\WindowsService1\bin\Debug\WindowsService1.exe"

四、查看window服务

控制面板-->管理工具-->服务,可在此手动启动,停止服务

五、调试window服务

1、通过【事件查看器】查看

2、直接在程序中调试(菜单-->调试-->附加进程-->服务名(这里的服务名是项目名称,不是ServiceName属性自定义的名称,所以建议自定义名称和项目名称保持一致,另外需勾选【显示所有用户的进程】才能看到服务名)-->附加

3. 在程序中打断点调试即可,另外调试服务时服务必须已启动(管理工具-->服务)

相关文章
|
1月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
31 0
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
存储 安全 数据安全/隐私保护
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
273 0
|
2月前
|
自然语言处理 C# Windows
C#开源免费的Windows右键菜单管理工具
C#开源免费的Windows右键菜单管理工具
|
2月前
|
Java Unix 应用服务中间件
使用java service wrapper把windows flume做成服务
使用java service wrapper把windows flume做成服务
|
2月前
|
Windows
修改Windows服务的配置
修改Windows服务的配置
|
3月前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
181 2
|
29天前
|
Shell Windows
Windows服务器 开机自启动服务
Windows服务器 开机自启动服务
14 0
|
4月前
|
网络协议 安全 文件存储
Windows本地搭建WebDAV服务并使用内网穿透远程访问【无公网IP】
Windows本地搭建WebDAV服务并使用内网穿透远程访问【无公网IP】
|
4月前
|
监控 Linux 定位技术
Linux【环境部署 01】NTP时间服务器搭建及Linux+Windows客户端使用(一篇学会使用NTP服务)
Linux【环境部署 01】NTP时间服务器搭建及Linux+Windows客户端使用(一篇学会使用NTP服务)
688 0