TGViewer
Анонимный дотнетчик Анонимный дотнетчик @dotnetter · 1.81K subscribers
Post #9182 495
Служба Windows на C# в .Net 9 (Telegram.Bot)

После перехода Microsoft с .NET Framework на .NET Core программирование на C# стало более увлекательным, хотя некоторые аспекты изменились.
В частности, шаблон проекта Служба Windows (.NET Framework) создаёт класс, наследник от ServiceBase в пространстве имен System.ServiceProcess. Прогеру предлагается  реализовать виртуальные методы базового класса OnStart и OnStop, которые задают действия, подлежащие выполнению при запуске (остановке) службы, что собственно и есть суть и назначение Службы Виндовз. Регистрация Службы в этом случае производится с помощью утилиты installUtil.exe, в .Net Core это делается утилитой SC.exe.
Реализовать службу на .NET Core (в моем случае .NET 9) не сложнее, но по другому, шаблон проекта теперь называется Worker Service (Microsoft), а рабочий класс наследуется от BackgroundService.
В этой статье я подробно опишу процесс создания, публикации и регистрации Службы в .Net 9 на примере службы для Telegram-бота (сокращенно — Телебот). Почему бот? Во-первых, писать Телебота на C# — это действительно приятно. Во-вторых, чтобы обеспечить его круглосуточную доступность на сервере под управлением Windows, логично использовать именно Службу Windows, которая будет поддерживать его работу в фоновом режиме и запускаться может сама при перезагрузке сервера.
В заключении рассмотрим как добавить логирование в стандартный виндовый EventLog и немного обсудим функционал самого Телебота.

Читать далее

https://habr.com/ru/articles/863770/?utm_campaign=863770&utm_source=habrahabr&utm_medium=rss
More from @dotnetter
  1. Oct 14, 2025.NET and .NET Framework October 2025 servicing releases updates A recap of the latest serv…
  2. Oct 14, 2025Announcing .NET 10 Release Candidate 2 .NET 10 Release Candidate 2 focuses on final qualit…
  3. Oct 14, 2025Announcing the .NET Security Group Learn how to join the .NET Security Group for early acc…
  4. Oct 14, 2025Выбор языка программирования для создание более трудных проектов: как сделать правильный в…
  5. Oct 13, 2025Система резервации на 600 заказов в секунду без буферизации и другой дичи Я прочитал стать…
  6. Oct 13, 2025Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика Введение Вс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →