Сервис 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д