C#创建Windows服务

  用C#做Windows服务时,一般都是用在定时处理某些事情的情况下。

  比如以下情况:

      1、每天定点执行一次。比如:每天晚上12点对当天的订单数据统计报表。

      2、每隔一定时间不间段执行。比如:每隔1小时发布系统消息。

      3、自动处理单订。比如:有单订产生,立即处理。(当然,可能要有一定延时。时间越精确,当然数据库的扫描压力就越大)

      实现思路1:计时器(设置Interval参数:默认为毫秒,1小时=60*60*1000)

      实现思路2:计时器启动执行一次+While(true)+Thread.Sleep(时间);

      在网上有人说第二种方法效果要好,我也没去测试。

  下面我们看具体步骤:

  1、创建服务。(此处该省的要省)

  上个图:

  

  

  在这,所有的命名都采用默认的。

  2、在我们的服务中编写代码:打开Services1.cs。

  模式1代码:

View Code
    partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

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

        //这种模式:表示服务在每秒中处理1次业务逻辑

        protected override void OnStart(string[] args)
        {
            // TODO: 在此处添加代码以启动服务。
            timer1 = new System.Timers.Timer();
            timer1.Interval = 1000;  //设置计时器事件间隔执行时间
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
            timer1.Enabled = true;
        }

        private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            //要处理的业务逻辑
            
        }

        protected override void OnStop()
        {
            // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
            this.timer1.Enabled = false; 
        }
    }

 

  3、添加并配置安装服务

  在Services1.cs的设置模式下“添加安装程序”。系统会自动创建两个组件:serviceProcessInstaller1和serviceInstaller1

  

  

 

  

  下面介绍下这两个组件的基本配置:我比较喜欢贴图

  serviceProcessInstaller1:

  

  serviceInstaller1:

  

4、生成、部署服务。

  在.Net Framework的命令窗口: installutil D:\WindowsService1.exe 即可完成安装服务(注绝对路径)

    在.Net Framework的命令窗口: installutil /uninstall D:\WindowsService1.exe 即可删除服务(注绝对路径)

  

  

  

  哈哈,搞定,安装完成,现在去Windows服务里有没有成功。下面就是见证服务的时刻:

  

     删除服务我就不演示了,因为我相信你懂的。

  由于安装过程比较复杂,可以写一个批处理,只要把服务文件的路径写上去就行。

  

本篇只为介绍大家创建Windows服务的基本步骤。谢谢... 须要源码的人可以@我。

 

posted @ 2012-12-06 13:32  lhfly  阅读(511)  评论(2编辑  收藏  举报