Sdílet prostřednictvím


Ukázka kompletní služby

Témata v této části tvoří kompletní ukázku služby:

Sestavení služby

Následující postup popisuje, jak sestavit službu a zaregistrovat DLL souboru zpráv o událostech.

Zbudovat službu a zaregistrovat knihovnu DLL zpráv událostí

  1. Pomocí následujícího postupu sestavte knihovnu DLL zpráv z Sample.mc:

    1. mc -U sample.mc
    2. rc -r sample.rc
    3. odkazu -dll -noentry -out:sample.dll sample.res
  2. Sestavte Svc.exe, SvcConfig.exea SvcControl.exe z Svc.cpp, SvcConfig.cpp a SvcControl.cpp.

  3. Vytvořte klíč registru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SvcName a do tohoto klíče přidejte následující hodnoty registru.

    Hodnota Typ Popis
    EventMessageFile = dll_path REG_SZ Cesta k knihovně DLL pouze pro prostředky, která obsahuje řetězce, které může služba zapisovat do protokolu událostí.
    TypesSupported = 0x00000007 REG_DWORD Bitová maska, která určuje podporované typy událostí. Hodnota 0x000000007 označuje, že jsou podporovány všechny typy.

     

Testování služby

Následující postup popisuje, jak službu otestovat.

Otestovat službu

  1. V Ovládacích panelech spusťte aplikaci Služby. (V následujících krocích pomocí klávesy F5 aktualizujte zobrazení po provedení příkazu, který upraví informace v aplikaci Services.)

  2. Spuštěním následujícího příkazu nainstalujte službu:

    instalace svc

    Služba zapíše do konzoly "Služba byla úspěšně nainstalována", pokud operace uspěje, nebo v opačném případě zapíše chybovou zprávu.

    Pokud instalace služby proběhne úspěšně, služba se zobrazí v aplikaci Services. Všimněte si, že Název je nastaven na SvcName, Popis a Stav jsou prázdné a typ spuštění je nastaven na "Ručně".

  3. Spuštěním následujícího příkazu spusťte službu:

    svccontrol spustit SvcName

    Pokud je operace úspěšná, program řízení služby zapíše do konzole "Spouštění služby probíhá..." a poté "Služba byla úspěšně spuštěna". Jinak program zapíše do konzoly chybovou zprávu.

    Pokud se služba úspěšně spustí, Status je nastaven na hodnotu Spuštěno. Kód ve funkci ServiceMain je vykonáván SCM. Pokud dojde k chybě, služba zapíše do protokolu událostí chybovou zprávu. Tato zpráva obsahuje název funkce, která selhala, a kód chyby vrácený při selhání.

  4. Spuštěním následujícího příkazu aktualizujte popis služby:

    Popis služby svcconfig SvcName

    Konfigurační program služby zapíše do konzoly "Popis služby byl úspěšně aktualizován", pokud operace proběhne úspěšně, nebo chybovou zprávu v opačném případě.

    Pokud aktualizace proběhne úspěšně, popis je nastaven na "Toto je testovací popis".

  5. Spuštěním následujícího příkazu zadejte dotaz na konfiguraci služby:

    svcconfig query SvcName

    Konfigurační program služby zapíše informace o konfiguraci služby do konzoly, pokud operace proběhne úspěšně, nebo jinak zobrazí chybovou zprávu.

  6. Pro změnu DACL služby spusťte následující příkaz:

    svccontrol dacl SvcName

    Konfigurační program služby zapíše do konzoly "Seznam DACL služby byl úspěšně aktualizován", pokud operace proběhne úspěšně, nebo chybovou zprávu v opačném případě.

  7. Spuštěním následujícího příkazu zakažte službu:

    svcconfig zakáže SvcName

    Konfigurační program služby zapíše do konzoly "Služba byla úspěšně zakázána", pokud operace proběhne úspěšně, nebo chybovou zprávu jinak.

    Pokud je služba úspěšně zakázaná, typ spuštění je nastaven na Zakázáno.

  8. Spuštěním následujícího příkazu povolte službu:

    svcconfig povolit SvcName

    Konfigurační program služby zapíše do konzoly "Služba byla úspěšně povolena", pokud operace proběhne úspěšně, nebo chybovou zprávu v opačném případě.

    Pokud je služba úspěšně povolená, typ spuštění je nastaven na "Ručně".

  9. Spuštěním následujícího příkazu službu zastavte:

    svccontrol stop SvcName

    Pokud operace proběhne úspěšně, program řízení služby zapíše na konzoli "Čeká se na zastavení služby..." a poté "Služba byla úspěšně zastavena". Jinak program zapíše do konzoly chybovou zprávu.

    Pokud se služba úspěšně zastaví, Stav je prázdný.

    Pokud se služba nepodaří zastavit, program řízení služby zapíše do protokolu událostí chybovou zprávu, která obsahuje název funkce, která selhala, a kód chyby vrácený při selhání.

  10. Spuštěním následujícího příkazu službu odstraňte:

    svcconfig odstranit SvcName

    Konfigurační program služby zapíše "Služba byla úspěšně odstraněna" do konzoly, pokud operace proběhne úspěšně, nebo chybovou zprávu jinak.

    Pokud se služba úspěšně odstraní, už se nezobrazí v aplikaci Services. (Všimněte si, že pokud se pokusíte odstranit službu, která není zastavena, operace bude úspěšná, ale typ spuštění je nastaven na Zakázáno a položka služby bude odstraněna při restartování systému nebo při ukončení služby pomocí Správce úloh.)

používání služeb