Сервис Windows. Не работает обработчик для таймера - C#
Формулировка задачи:
Здравствуйте, коллеги.
Не работает обработчик таймера из сервиса.
Регистрируем сервис батником следующего содержания:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe "D:\Distrib\Utilities\Eternal\MyService.exe"
pause
далее идём в service.msc, находим наш сервис. Играемся: включаем/выключаем его, слышим мелодию на старт/стоп, стало быть сервис стартует и останавливается нормально.
Но почему-то не работает обработчик события для timer1. В чём тут может быть дело?
using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Net;
namespace TestService
{
public partial class MyService : ServiceBase
{
public MyService()
{
InitializeComponent();
}
string host = "http://google.com";
//проверяем, жив ли гугл
public bool CheckConnection()
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(host);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (HttpStatusCode.OK == response.StatusCode)
{
response.Close();
return true;
}
else
{
response.Close();
return false;
}
}
catch (WebException)
{
return false;
}
}
protected override void OnStart(string[] args)
{
timer1.Enabled = true;
timer1.Start();
AddLog("start");
Console.Beep(1000, 100);
Console.Beep(1100, 100);
Console.Beep(1200, 100);
}
protected override void OnStop()
{
AddLog("stop");
Console.Beep(1300, 100);
Console.Beep(1200, 100);
Console.Beep(1100, 100);
}
public void AddLog(string log)
{
try
{
if (!EventLog.SourceExists("MyService"))
{
EventLog.CreateEventSource("MyService", "MyService");
}
eventLog1.Source = "MyService";
eventLog1.WriteEntry(log);
}
catch { }
}
private void timer1_Tick(object sender, EventArgs e)
{
if (CheckConnection() != true)
Console.Beep(350, 75);
}
}
}Решение задачи: «Сервис Windows. Не работает обработчик для таймера»
textual
Листинг программы
Console.Beep(350, 75);