111,098
社区成员




public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("模板消息定时发送服务启动");//在系统事件查看器里的应用程序事件来源的描述
WriteLog("服务启动1");//自定义日志
System.Timers.Timer time = new System.Timers.Timer();
time.Interval = 1000*60;
//time.Elapsed += new System.Timers.ElapsedEventHandler(SendTemplateMessage);
time.Elapsed += SendTemplateMessage;//到达时间执行事件
time.AutoReset = true;//设置是执行一次(FALSE)还是一直执行(true)
time.Enabled = true;//是否执行System.TImers.Timer.Elapsed事件
}
private void SendTemplateMessage(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute;
int intSecond = e.SignalTime.Second;
string gisdataSend = ConfigurationManager.AppSettings["DataSend"].ToString();
string gisdataPath = ConfigurationManager.AppSettings["DataSendPath"].ToString();
string gisdataHoure = ConfigurationManager.AppSettings["DataIntHour"].ToString();
string gisdataMinute = ConfigurationManager.AppSettings["dataIntMinute"].ToString();
string moveSend = ConfigurationManager.AppSettings["MoveSend"].ToString();
string movePath = ConfigurationManager.AppSettings["MoveSendPath"].ToString();
string moveHoure = ConfigurationManager.AppSettings["MoveIntHour"].ToString();
string moveMinute = ConfigurationManager.AppSettings["MoveIntMinute"].ToString();
//if (intHour == Convert.ToInt32(moveHoure) && intMinute == Convert.ToInt32(moveMinute))//定时设置,判断分时秒
if (intHour == Convert.ToInt32(moveHoure) && intMinute == Convert.ToInt32(moveMinute))//定时设置,判断分时秒
{
if (moveSend == "1")
{
System.Timers.Timer tt = (System.Timers.Timer)sender;
tt.Enabled = false;
//var result = GetHtml(movePath);
var result = SendGetHttpRequest(movePath, "application/x-www-form-urlencoded");
WriteLog(result);
tt.Enabled = true;
}
}
if (intHour == Convert.ToInt32(gisdataHoure) && intMinute == Convert.ToInt32(gisdataMinute))//定时设置,判断分时秒
{
if (gisdataSend == "1")
{
System.Timers.Timer tt = (System.Timers.Timer)sender;
tt.Enabled = false;
//var result = GetHtml(gisdataPath);
var result = SendGetHttpRequest(gisdataPath, "application/x-www-form-urlencoded");
WriteLog(result);
tt.Enabled = true;
}
}
}
catch (Exception ex)
{
WriteLog(ex.ToString());
}
}
private string SendGetHttpRequest(string url, string contentType)
{
WebRequest request = (WebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
request.ContentType = contentType;
string result = string.Empty;
using (WebResponse response = request.GetResponse())
{
if (response != null)
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
}
}
}
return result;
}
protected override void OnStop()
{
WriteLog("服务停止");
EventLog.WriteEntry("服务停止");
}
//日志
public void WriteLog(string readme)
{
string logPath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
StreamWriter dout = new StreamWriter(logPath + "WechatLog.txt", true);
dout.Write("\r\n事件:" + readme + "\r\n操作事件:" + System.DateTime.Now.ToString("yyy-MM-dd HH:mm:ss"));
dout.Close();
}
最后附上调试Windows服务的链接https://msdn.microsoft.com/zh-cn/library/7a50syb3(v=vs.110).aspx