IRONSOFTWAREHOME

Wprowadzenie do usług Windows w języku C#

Wprowadzenie do usług Windows w C# - Jak stworzyć, zainstalować i używać usługę za pomocą Topshelf

Tim Corey

31m 20s

Usługi Windows to potężne narzędzia w ekosystemie .NET, zdolne do wykonywania zadań w tle bez interwencji użytkownika. Tworzenie usługi Windows w C# może brzmieć skomplikowanie, ale w swoim filmie "Intro to Windows Services in C# - How to create, install, and use a service using Topshelf", Tim Corey tłumaczy to krok po kroku.

W tym artykułe przeanalizujemy ten film, omawiając każdy temat dla jasności i ciągłości.

Wprowadzenie do usług Windows

Tim przedstawia usługi Windows jako potężne, często pomijane narzędzia do automatyzacji. Te aplikacje są zaprojektowane do działania w tle, obsługując zadania bez potrzeby interfejsu użytkownika. Typowe przykłady to SQL Server Agent lub usługi Hyper-V.

Tim podkreśla znaczenie ćwiczeń dla opanowania C#. Zaleca pobranie kodu źródłowego połączonego w opisie filmu dla nauki praktycznej.

Tworzenie aplikacji demonstracyjnej w konsoli

Używając Visual Studio, Tim tworzy nowy projekt aplikacji konsolowej o nazwie SimpleHeartbeatService. Chociaż można użyć szablonu projektu Usługi Windows, Tim preferuje podejście konsolowe ze względu na prostotę debugowania.

"Chodzi tu nie o to, jaki kod umieszczę, ale jak stworzyć samą usługę," zauważa Tim.

Czym jest usługa Windows?

Tim otwiera zakładkę Usługi w Windows, używając wyszukiwania w menu Start (wystarczy wpisać "usługi" i nacisnąć Enter). Wyjaśnia, że usługi działające w tle wykonują kluczowe funkcje systemu operacyjnego jak zdalny pulpit czy serwer MySQL.

Celem jest stworzenie nowego wpisu na tej liście przy użyciu własnego kodu.

Typy projektów w Visual Studio: Aplikacja konsolowa vs. Usługa Windows

Możesz być skłonny wybrać projekt Usługi Windows w Visual Studio, ale Tim wyjaśnia, że trudniej go debugować. Zamiast tego aplikacja konsolowa pozwala uruchamiać i testować ją lokalnie, co zmniejsza potrzebę podłączania debugera do działającej usługi.

"Wbudowany typ projektu usługi utrudnia debugowanie, ponieważ najpierw trzeba go zainstalować, a potem dołączyć debugger."

Dodawanie Topshelf przez NuGet

Aby uprościć implementację usługi, Tim dodaje Topshelf, otwartoźródłowy framework, przez NuGet. Ta popularna biblioteka (z milionami pobrań) pomaga tworzyć usługi Windows bez kodu szablonowego.

Kroki:

  1. Kliknij prawym przyciskiem myszy na Referencje

  2. Wybierz Zarządzaj pakietami NuGet

  3. Wyszukaj i zainstaluj Topshelf

Pisanie logiki usługi

Tim tworzy klasę Heartbeat z dwoma publicznymi metodami: Start() i Stop(). W konstruktorze ustawia System.Timers.Timer do wykonywania co sekundę.

Zdarzenie Elapsed tego timera dopisuje bieżący czas do pliku .txt w folderze C:\temp\demos. To imituje zadanie działające w tle, które działa nieprzerwanie.

"Ten timer będzie co sekundę zapisywać do pliku tekstowego, pokazując, że usługa jest aktywna."

Symuluje to działanie długotrwałych procesów w rzeczywistych usługach, takich jak skanowanie folderów czy drukowanie dokumentów.

Podłączenie usługi z Topshelf

Używając HostFactory.Run, Tim integruje Topshelf z aplikacją:

  • Definiuje klasę Heartbeat

  • Mapuje metody Start() i Stop()

  • Konfiguruje usługę do działania jako LocalSystem, nadając niezbędne uprawnienia

Ustawia również metadane dla usługi:

  • Nazwa usługi: HeartbeatService

  • Nazwa wyświetlana: Heartbeat Service

  • Opis: Używane do celów demonstracyjnych w filmie na YouTube

Uruchamianie usługi jako aplikacji konsolowej

Przed instalacją Tim uruchamia aplikację, aby ją przetestować. Timer poprawnie dopisuje znaczniki czasu do heartbeat.txt. Używając funkcji Monitoringu w Notepad++, pokazuje aktualizacje w czasie rzeczywistym.

Instalacja i weryfikacja usługi

Tim kopiuje plik .exe i powiązane pliki z folderu bin\Debug do stałej lokalizacji (np. C:\demos\HeartbeatService). Używając wiersza poleceń z uprawnieniami administracyjnymi, wykonuje następujące polecenia:

SimpleHeartbeatService.exe install
SimpleHeartbeatService.exe start

To dodaje usługę do Menedżera Kontroli Usług. Po ponownym otwarciu zakładki Usługi i kliknięciu Odśwież, usługa jest teraz widoczna i działa.

"Naprawdę łatwo jest zainstalować usługę, i naprawdę łatwo jest coś zrobić z usługą."

Aby odinstalować:

SimpleHeartbeatService.exe uninstall

Podsumowanie: Korzyści i uwagi

Tim podsumowuje, że tworzenie i instalowanie usługi przy użyciu Topshelf jest proste. Jednak ostrzega, że nieskończone pisanie do plików może prowadzić do problemów z przechowywaniem, co jest dobrym przypomnieniem o właściwym zarządzaniu logowaniem.

Pomysły na usługi w rzeczywistym świecie

Tim dzieli się praktycznymi pomysłami na usługi Windows:

  • Czyszczenie folderów: Usuń stare pliki z folderu Pobrane

  • Organizacja obrazów: Sortuj zdjęcia do folderów według daty

  • Przetwarzanie CSV: Obserwuj folder i automatycznie importuj CSV do bazy danych

  • Automatyzacja e-mail: Monitoruj tabelę helpdesk i wysyłaj powiadomienia

Te przykłady pokazują, jak używać usług do automatyzacji zadań w tle i integracji z takimi narzędziami jak SQL Server, OneDrive i planery zadań.

Podsumowanie

Tim kończy, zachęcając programistów do eksperymentowania. Należy jednak uważać na pamięć, przechowywanie i logowanie wydarzeń. Jeśli potrzebujesz automatycznej aktualizacji, ustawień zabezpieczeń lub bardziej solidnego wdrożenia, wymagana będzie dalsza konfiguracja.

"Jest tu dużo mocy, i wiele rzeczy, które można zrobić."

Wnioski

Używając demonstracji krok po kroku Tima Coreya w jego filmie, tworzenie usługi Windows w C# staje się dostępne i praktyczne. Dzięki zastosowaniu Topshelf, aplikacja konsolowa może być przekształcona w pełni działającą usługę Windows z minimalną konfiguracją. Niezależnie od tego, czy zarządzasz plikami dziennika, obsługujesz zdarzenia bazy danych czy wykonujesz automatyzację, usługi oferują potężny i skalowalny sposób budowania aplikacji działających w czasie rzeczywistym, w tle z wykorzystaniem .NET Framework lub .NET Core.

Użyj tego samouczka jako kompletnej ścieżki do zrozumienia, tworzenia i instalowania usług efektywnie. Nie zapomnij o dokładnym testowaniu i zawsze uruchamiaj instalator lub wiersz poleceń jako administrator.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta