用.net制作Windows service

1,vs --> new project --> 选择一个Windows Service项目 --> OK,点OK确认后,

2,选择Server1,view design --> 属性 --> server name(这个name是在windows service上显示的名称)

3,选择Server1,view design --> 右键 --> add installer

4,经过第三步后,在项目中会多一个ProjectInstaller.cs --> view desing --> 属性 --> account 把他的值设置为localsystem

5,在onStart 和 onStop中编写代码,编译 生成

6,安装 installutil -i 安装 -u 卸载 (installutil ***.exe -i 或者 -u)

  installutil.exe位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727文件夹下

7,调试 选择debug --> attach to process --> 选择在上面创建的server name,如果没有server name那么就可以找到响应的.EXE文件,其实这是可以从任务管理器里面看到的进程

8,F5开始即可进行调试

9,定时运行的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;

namespace WindowsService3
{
    public partial class Service1 : ServiceBase
    {
        private System.Timers.Timer timer1 = new System.Timers.Timer();
        private int i;

        public Service1()
        {
            InitializeComponent();

            this.timer1.Interval = 3000;
            this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
        }
       
        protected override void OnStart(string[] args)
        {
            i = 0;
            this.timer1.Enabled = true;
        }

        protected override void OnStop()
        {
            timer1.Stop();

            FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter m_streamWriter = new StreamWriter(fs);

            m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            m_streamWriter.WriteLine(" mcWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");

            m_streamWriter.Flush();

            m_streamWriter.Close();

            fs.Close();


        }


        private void CreateFile(int values)
        {
            FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter m_streamWriter = new StreamWriter(fs);

            m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            m_streamWriter.WriteLine("mcWindowsService: " + values.ToString() + " times \t " + DateTime.Now +" \n");

            m_streamWriter.Flush();

            m_streamWriter.Close();

            fs.Close();
        }

        private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            i++;
            CreateFile(i);
        }
    }
}

posted @ 2008-06-25 18:02  谢杰  阅读(324)  评论(0编辑  收藏  举报