Эта статья даст вам обзор службы Windows, а также то, как написать службы Windows для обработки задач, выполняемых в фоновом режиме.
Что такое службы Windows?
- Службу Windows можно примерно понимать как фоновое приложение в течение долгого времени с момента включения компьютера до его выключения.
- Он может запускаться автоматически при загрузке компьютера, может быть перезапущен или приостановлен без какого-либо вмешательства пользователя в инструменты, связанные с пользовательским интерфейсом.
- Может быть легко установлен благодаря встроенному инструменту поддержки Visual Studio exe через командную строку. Вам просто нужно указать доступный каталог исполняемого файла и выполнить его. Итак, вы установили службу Windows.
Зачем использовать WS?
- Один из наиболее важных запросов клиентов: иметь приложение, работающее в фоновом режиме каждый день для агрегирования данных, используемых для создания отчетов, синхронизации данных с серверов, просмотра, сколько продуктов было продано сегодня, или отправляет электронное письмо пользователям, когда их учетная запись истек, v… v… 😀
- Создание WS можно рассматривать как оптимальное решение для вышеупомянутых ситуаций, при этом пользователю не нужно вообще манипулировать WS, все выполняется в фоновом режиме на их компьютере / сервере.
Напишите простые оконные службы
С учетом вышеперечисленных проблем в этой статье я расскажу вам, как построить WS от базового до расширенного шаг за шагом 1 (это то, что я узнал из реального проекта, поэтому я хочу поделиться с вами .: D).
Сначала мы создадим проект службы Windows следующим образом.
После создания проекта мы создадим класс Utilities для записи в файл журнала событий WS следующим образом.
public class Utilities { public static void WriteLogError (Exception ex) { StreamWriter sw = null; try { sw = new StreamWriter (AppDomain.CurrentDomain.BaseDirectory + "\\ LogFile.txt", true); sw.WriteLine (DateTime.Now.ToString ("g") + ":" + ex.Source + ";" + ex.Message); sw.Flush (); sw.Close (); } catch { // ignored } } public static void WriteLogError (string message) { StreamWriter sw = null; try { sw = new StreamWriter (AppDomain.CurrentDomain.BaseDirectory + "\\ LogFile.txt", true); sw.WriteLine (DateTime.Now.ToString ("g") + ":" + message); sw.Flush (); sw.Close (); } catch { // ignored } } }
Затем мы вернемся к классу Service1.cs, чтобы приступить к реализации основной части Сервиса. В этой вводной статье я сначала сделаю основные шаги, чтобы вы сначала визуализировали поток службы Windows.
public class Service1 { private Timer timer = null; public Service1 () { InitializeComponent (); } protected override void OnStart (string [] args) { // Create a timer from libary System.Timers timer = new Timer (); // Execute every 60s timer.Interval = 60000; // What happens when that timer is ticked timer.Elapsed + = timer_Tick; // Enable timer timer.Enabled = true; // Write log file when services dc start for the first time Utilities.WriteLogError ("Test for 1st run WindowsService"); } private void timer_Tick (object sender, ElapsedEventArgs args) { // Handle some logic here Utilities.WriteLogError ("Timer has ticked for doing something !!!"); } protected override void OnStop () { // Log when the Services have been stopped timer.Enabled = true; Utilities.WriteLogError ("1st WindowsService has been stopped"); } }
Это довольно просто для понимания, мы будем вызывать функцию timer_Tick каждые 60 секунд, чтобы что-то сделать. Затем мы возвращаемся к дизайну пользовательского интерфейса Service1.cs и щелкаем его правой кнопкой мыши, чтобы создать установщик для нашего WS.
После создания 1 установщика мы перейдем к свойствам, чтобы настроить необходимые вещи, такие как ServicesName и StartType. В этом примере я выберу режим «Руководство» для демонстрации, вы можете использовать его автоматически или отключить.
Затем мы настроим параметры для Process Installer следующим образом. Поскольку для демонстрации я буду использовать локальный компьютер для выполнения, поэтому я выберу Account is LocalSystem.
Вы уже написали 1 службу Windows. Соберите проект и прочтите следующее, чтобы узнать, как установить службу Windows.
Установить службу Windows
Откройте командную строку Visual Studio 2015 следующим образом: Пуск - ›Все программы -› Visual Studio 2015 - ›Инструменты Visual Studio -› Командная строка разработчика для VS2015. Перейдите в каталог отладки Project Windows Service.
Здесь мы будем использовать команду Install, за которой находится имя exe-файла, содержащего Сервис:
InstallUtil “FirstWindowsService.exe”
Если вы видите результаты, как показано выше, вы успешно установили его. Последний шаг - запустить Службы и просмотреть файл журнала.
На этом этапе вы, вероятно, понимаете, как построить WS.