using System;
using System.Collections.Generic;
using
System.ServiceProcess;
using System.Text;
namespace
NeoSuiteCIMS_FW
{
static class
Program
{
/// <summary>
///
应用程序的主入口点。
///
</summary>
static void
Main()
{
string
sw =
AppConfig.GetConfig("switch");
//启动服务
if
(!string.IsNullOrEmpty(sw) && sw ==
"1")
{
ServiceBase[]
ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
else
{
//存储过程的名字
string proName =
"p_result";
//控制台调试
ServiceConsole.Execute(proName);
}
}
}
}
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;
using
System.Text.RegularExpressions;
namespace
NeoSuiteCIMS_FW
{
public partial class Service1 :
ServiceBase
{
Timer timer1 = new
Timer();
int timeout =
Convert.ToInt32(AppConfig.GetConfig("timeout"));
public Service1()
{
InitializeComponent();
//每天24点执行服务,如果第一次启动服务的时间不是24点,计算时间间隔
if (DateTime.Now.Hour !=
0)
{
//DateTime nextDay =
DateTime.Now.AddDa=ys(1).Date;
DateTime nextDay =
DateTime.Now.AddMinutes(timeout);
TimeSpan ts = nextDay -
DateTime.Now;
timer1.Interval =
Convert.ToInt32(ts.TotalMilliseconds);
}
timer1.Elapsed += new
ElapsedEventHandler(timer1_Elapsed);
timer1.Enabled = true;
}
protected override void
OnStart(string[] args)
{
timer1.Start();
LogHelper.Info("服务启动:" +
DateTime.Now.ToString());
}
protected override void
OnStop()
{
timer1.Stop();
LogHelper.Info("服务停止:" +
DateTime.Now.ToString());
}
private void
timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs
e)
{
try
{
//存储过程的名字
string proName =
"p_result";
ServiceConsole.Execute(proName);
}
catch
(Exception
ex)
{
LogHelper.Error("服务执行中出错:" +
ex.Message);
}
}
}
}