一、创建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. 在措施中打断点调试即可,此外调试处事时处事必需已启动(打点工具-->处事)
文字转自:
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></param>
/// <param></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);
}
}
}