您的位置:首页 > 其它

创建Windows服务程序实现定时操作

2013-08-01 02:45 543 查看
Program.cs

using System.Collections.Generic;

using System.ServiceProcess;

using System.Text;

namespace WindowsService1

{

    static class Program

    {

        /// <summary>

        /// The main entry point for the application.

        /// </summary>

        static void Main()

        {

#if DEBUG

            Service1 service = new Service1();

            service.OnDebug();

            System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);

#else

            ServiceBase[] ServicesToRun;

            

            ServicesToRun = new ServiceBase[] { new Service1() };

            ServiceBase.Run(ServicesToRun);

#endif

        }

    }
}

使用#if 测试debug模式

Service1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.ServiceProcess;

using System.Text;

using System.Timers;

using System.IO;

namespace WindowsService1

{

    public partial class Service1 : ServiceBase

    {

        private Timer timer;

        public Service1()

        {

            InitializeComponent();

        }

        public void OnDebug()

        {

            OnStart(null);

        }

        protected override void OnStart(string[] args)

        {

            timer = new Timer(1000);

            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);

            timer.Start();

            //System.IO.File.Create(Environment.CurrentDirectory + "OnStart.txt");

            System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "OnStart.txt");

        }

        protected override void OnStop()

        {

            System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "OnStop.txt");

        }

        void timer_Elapsed(object sender, ElapsedEventArgs e)

        {

            string filePath = AppDomain.CurrentDomain.BaseDirectory + "test.txt";

            StreamWriter sw = null;

            if (!File.Exists(filePath))

            {

                sw = File.CreateText(filePath);

            }

            else

            {

                sw = File.AppendText(filePath);

            }

            sw.Write("Visit time:   " + DateTime.Now.ToString() + Environment.NewLine);

            sw.Close();

        }

    }

}

Service1.cs  design mode,   right click   add installer

 

go to start -> all programs ->vs ->vs tools -> command prompt    run as administrator

cd directory to your project/bin/realease      installutil WindowsService1.exe

task manager->service

start testService

如果 error 5,  can not access,  right click testService->property->log on     change account and password 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Windows Visual Studio