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