.net 定时执行 windows 服务

1.新建项目 --》 Windows 服务 2.Service1.cs代码

using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Data;  
using System.Diagnostics;  
using System.ServiceProcess;  
using System.IO;  
using System.Text;  
using System.Timers;  
using System.Data.SqlClient;  
using System.Threading;  
namespace InnPoint  
{  
    public partial class Service : ServiceBase  
    {  
        public Service()  
        {  
            InitializeComponent();  
        }  
        protected override void OnStart(string[] args)  
        {  
            EventLog.WriteEntry("我的服务启动");//在系统事件查看器里的应用程序事件里来源的描述  
            writestr("服务启动");//自定义文本日志  
            System.Timers.Timer t = new System.Timers.Timer();  
            t.Interval = 1000;  
            t.Elapsed += new System.Timers.ElapsedEventHandler(ChkSrv);//到达时间的时候执行事件;   
            t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);   
            t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;   
        }  
        /// <summary>  
        /// 定时检查,并执行方法  
        /// </summary>  
        /// <param name="source"></param>  
        /// <param name="e"></param>  
        public void ChkSrv(object source, System.Timers.ElapsedEventArgs e)  
        {  
            int intHour = e.SignalTime.Hour;  
            int intMinute = e.SignalTime.Minute;  
            int intSecond = e.SignalTime.Second;  
             
            if (intHour == 13 && intMinute == 30 && intSecond == 00) ///定时设置,判断分时秒  
            {  
                try  
                {  
                    System.Timers.Timer tt = (System.Timers.Timer)source;  
                    tt.Enabled = false;  
                    SetInnPoint();  
                    tt.Enabled = true;  
                }  
                catch (Exception err)  
                {  
                    writestr(err.Message);  
                }  
            }  
        }  
        //我的方法  
        public void SetInnPoint()  
        {  
            try  
            {  
                writestr("服务运行");  
                //这里执行你的东西  
                Thread.Sleep(10000);  
            }  
            catch (Exception err)  
            {  
                writestr(err.Message);  
            }  
        }  
        ///在指定时间过后执行指定的表达式  
        ///  
        ///事件之间经过的时间(以毫秒为单位)  
        ///要执行的表达式  
        public static void SetTimeout(double interval, Action action)  
        {  
            System.Timers.Timer timer = new System.Timers.Timer(interval);  
            timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e)  
            {  
                timer.Enabled = false;  
                action();  
            };  
            timer.Enabled = true;  
        }  
  
        public void writestr(string readme)  
        {  
            //debug==================================================  
            //StreamWriter dout = new StreamWriter(@"c:/" + System.DateTime.Now.ToString("yyyMMddHHmmss") + ".txt");  
            StreamWriter dout = new StreamWriter(@"c:/" + "WServ_InnPointLog.txt", true);  
            dout.Write("/r/n事件:" + readme + "/r/n操作时间:" + System.DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"));  
            //debug==================================================  
            dout.Close();  
        }  
        protected override void OnStop()  
        {  
            writestr("服务停止");  
            EventLog.WriteEntry("我的服务停止");  
        }  
    }  
}  

3.在Service1.cs设计页面右键添加安装程序

4.ProjectInstaller.cs设计页面中

   serviceInstaller1属性中设置:

Description(系统服务的描述)

DisplayName (系统服务中显示的名称)

ServiceName(系统事件查看器里的应用程序事件中来源名称)

   serviceProcessInstaller1属性设置:

      Account 下拉设置成 LocalSystem

5.在.net Framework的安装目录可以找到InstallUtil.exe,可以复制出来放在你的服务生成的exe一起

6.安装服务setup.bat批处理文件内容:InstallUtil Service1.exe ,安装好后可以在系统服务中找到你设置的服务名称然后可以启动这个服务

7.卸载服务UnInstall.bat批处理文件内容:InstallUtil -u Service1.exe

转自:http://blog.csdn.net/windxxf/article/details/6014538

时间: 2024-10-12 04:08:36

.net 定时执行 windows 服务的相关文章

windows 服务实现定时任务调度(Quartz.Net)

我们通常在一些情况下需要软件具有一个自动执行某些任务的功能,但是又不希望直接启动软件,或者每次都要手动的来启动软件,这时我们可可以考虑到windows服务了. 首先创建一个windows服务项目(详细信息请参阅:C#创建Windows Service(Windows 服务)基础教程) 在创建好的项目中点击“单击此处切换到代码视图”切换到代码 我们主要关注一下两个方法: • OnStart – 控制服务启动 • OnStop – 控制服务停止 例: 1 public partial class S

快速搭建多线程Windows服务解决方案

一.引言 在软件开发过程中windows服务有的时候非常有用,用于同步数据,发送邮件,宿主WF引擎服务等,但是快速搭建一个好用多线程进行多任务处理的程序往往是一个项目必须考虑的问题.自己在项目中也经常碰到类似的问题,但是一直没有做过这方面总结,每次需要相关windows服务,也重头写一次.自己几乎没有写博客的习惯,前不久看到博客园中有篇关于windows服务的框架写的非常好(抱歉,当时看完以后忘记收藏),感觉自己这些年对它也有一定的认识,但是很少拿出来和大家分享.其实大家都知道通过分享才能找到问

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

一.创建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.Time

使用ASP.NET实现定时计划任务,不依靠windows服务

我们怎样才能在服务器上使用asp.net定时执行任务而不需要安装windows service?我们经常需要运行一些维护性的任务或者像发送提醒邮件给用户这样的定时任务.这些仅仅通过使用Windows Service就可以完成.Asp.net通常是一个无状态的提供程序,不支持持续运行代码或者定时执行某段代码.所以,我们不得不构建自己的windows service来运行那些定时任务.但是在一个共享的托管环境下,我们并不总是有机会部署我们自己的windwos service到我们托管服务提供商的we

windows定时执行PHP的技巧

windows定时执行PHP相信不少读者(PHP爱好者)在工作.学习的过程中经常抱怨:在WIN如何让PHP定时自动发信呢??如何让MYSQL实现自动备份而无后顾之忧呢??如 果完全依靠手工进行当然也可以实现,但操作上似乎过于繁琐了一点!别着急,利用系统的任务计划程序(Windows 98称之为计划任务)可轻易解决这一问题.这一功能往往被很多用户忽略或者未曾想到:). 所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的.利用Windows 2000的任务计划程序(

使用ASP.NET实现Windows Service定时执行任务

转载http://blog.csdn.net/yanghua_kobe/article/details/6937816 我们怎样才能在服务器上使用asp.net定时执行任务而不需要安装windows service?我们经常需要运行一些维护性的任务或者像发送提醒邮件给用户这样的定时任务.这些仅仅通过使用Windows Service就可以完成.Asp.net通常是一个无状态的提供程序,不支持持续运行代码或者定时执行某段代码.所以,我们不得不构建自己的windows service来运行那些定时任

thinkphp 定时执行php文件--windows系统任务计划

实现思路如下: 通过win的"任务"功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数指定执行哪个类和方法 方法如下: 一,thinkphp开启cli支持 1.tp正好支持cli命令模式,手册的路径为13.7.4 如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码. 2.在入口文件下开启命令,加入一句 define('MODE_NAME', 'cli'); 网站一般还有可以通过网页访问的模块,所以可以新

Windows Server 2008中使用计划任务定时执行BAT批处理文件图文教程

这篇文章主要介绍了Windows Server 2008中使用计划任务定时执行BAT批处理文件,这样就可以定时执行自己的任务了. 首先Windows Server 2008不同于其他服务器操作系统和Windows Server 2003有着很大的区别,计划任务的名称是"任务计划程序"不在控制面板里,而是在"管理工具"里. 由于服务器需要做些任务,定时执行,自己写程序吧,麻烦,所以采用BAT进行代替操作,网络上很多人都在说每分钟执行怎么配置,今天我们就配置一下. 打开

C# 创建Windows服务。服务功能:定时操作数据库

一.创建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.Time