Сервис Windows. Не работает обработчик для таймера - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, коллеги. Не работает обработчик таймера из сервиса.
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);
        }
 
    }
}
Регистрируем сервис батником следующего содержания: C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe "D:\Distrib\Utilities\Eternal\MyService.exe" pause далее идём в service.msc, находим наш сервис. Играемся: включаем/выключаем его, слышим мелодию на старт/стоп, стало быть сервис стартует и останавливается нормально. Но почему-то не работает обработчик события для timer1. В чём тут может быть дело?

Решение задачи: «Сервис Windows. Не работает обработчик для таймера»

textual
Листинг программы
Console.Beep(350, 75);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы